測試環境:Windows十、nginx-1.14.0
步驟java
這裏使用本身生成的免費證書。在${JAVA_HOME}/bin 下能夠看到keytool.exe,在改目錄打開cmd而後輸入:nginx
keytool -genkey -v -alias tomcat -keyalg RSA -keystore d:\local.keystore -validity 36500
生成別名爲 tomcat 名稱爲local.keystore的證書,有效期100年。而後密碼什麼的根據本身需求填寫。
生成證書過程當中:【你的名字】對應網站域名或IP。shell
經常使用證書格式:JKS(.keystore),微軟(.pfx),OPSSL之PEM(.key + .crt),其中tomcat使用JKS格式,nginx使用PEM格式。tomcat
因爲生成的證書是jks格式,nginx不能直接用,須要要轉成PEM格式,這要用到jks2pfx工具進行轉換。
b.下載jks2pfx工具解壓後,在解壓目錄打開cmd,而後輸入:session
JKS2PFX D:\local.keystore 123456 tomcat exportfile D:\Program Files\java\JDK7\jre7\bin
jks2pfx的命令格式:JKS2PFX keystore password alias exportname Java_Runtime_Folder工具
c.上面的命令是把d盤下的local.keystore(根據你本身keystore的位置來寫)中別名爲tomcat、密碼是123456的SSL證書導出,運行後將在jks2pfx的解壓目錄下產生3個文件 exportfile.key、exportfile.crt、exportfile.pfx。本文只要用到exportfile.key、exportfile.crt,把這兩個文件複製到${NGINX_HOME}/conf目錄下。測試
jks2pfx工具網站
KeyStore文件:指Tomcat保存SSL證書的文件
KeyStore密碼:KeyStore文件對應的密碼
Alias別名: 生成證書CSR時,所起的Alias別名
導出文件名: 準備導出的文件名稱 (不要帶擴展名)
JavaRuntime目錄(可選): 指包含Java.exe和keytool.exe的目錄,如:c:\progra~1\Java\jre1.5.0_06\bincode
例如:server
JKS2PFX server.jks 123456 tomcat exportfile c:\progra~1\Java\jre1.5.0_06\bin
該命令將server.jks中別名爲tomcat的SSL證書導出,運行後將產生3個文件:
exportfile.key、exportfile.crt、exportfile.pfx;
其中exportfile.pfx能夠導入到微軟的IIS中使用;
exportfile.key和exportfile.crt可用於Apache、Nginx或者其餘OpenSSL兼容的系統。
能夠用下面命令查看PFX文件內容:
openssl pkcs12 -info -in exportfile.pfx
修改nginx.conf,把要實現https的server像下面這樣配置:
HTTPS server
server { ssl on; listen 443 ssl; server_name localhost; ssl_certificate exportfile.crt; ssl_certificate_key exportfile.key; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; }
重啓nginx生效。
server { listen 80; server_name yang_host; return 301 https://$server_name$request_uri; } server { ssl on; listen 443; server_name yang_host; }