項目中需要使用代理訪問目標(biāo)服務(wù)器,服務(wù)方只接受https請求,并且使用雙向認(rèn)證 經(jīng)歷了一番波折總算配置成功
現(xiàn)在講配置過程記錄下來。
首先是nginx 配置問題
查閱官方文檔?
http://nginx.org/en/docs/http/ngx_http_proxy_module.html

以下兩項配置https 客戶端認(rèn)證私鑰與證書
proxy_ssl_certificate
proxy_ssl_certificate_key
以下項目配置代理轉(zhuǎn)發(fā)地址
proxy_pass https://127.0.0.1:8443$request_uri;
配置文件

其中有一個坑在與配置代理轉(zhuǎn)發(fā)地址時,如果不添加https:// 客戶端請求的時候會報錯,所以這里一定要寫上。
上面這些都配置好后,代理就能正常使用了。
此外,證書問題可能有些人還會遇到問題,推薦的解決方案是在linux 下使用keytool+opensll 來進(jìn)行證書轉(zhuǎn)換,openssl需可能需要單獨安裝,具體方式可以問度娘。
以下提供從jks中獲取pem格式證書和私鑰的方法:
1、提取公鑰:
切換到j(luò)ks證書的存儲路徑,執(zhí)行如下命令:keytool -list -rfc -keystore demo.jks -storepass demopwd

將證書內(nèi)容完整復(fù)制,粘貼到文件中,保存為cer.pem
2、提取私鑰
私鑰無法直接提取,需要將jks進(jìn)行轉(zhuǎn)換
1)keytool -importkeystore -srckeystore dem.jks -destkeystore demo.p12 -srcstoretype jks -deststoretype pkcs12
2)openssl pkcs12 -nodes -in 10411004511201290.p12 -out demo.pem
vim demo.pem?

將-----BEGIN PRIVATE KEY-----? ……-----END PRIVATE KEY----- 之間內(nèi)容(包含) 進(jìn)行復(fù)制,粘貼到新文件中,保存名稱為privateKey.pem?
或者可以直接執(zhí)行第二個提取私鑰操作 執(zhí)行vim demo.pem? 后可以看到證書和私鑰,分別保存成兩個pem文件即可。