测试环境: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; }