1 安装nginx,我的版本是1.12.2的
2 openssl下载地址Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions,我下载的Win64 OpenSSL v1.1.1m(msi版本)
3 配置环境变量
ii 新增 OPENSSL_HOME:D:\dev\OpenSSL\OpenSSL-Win64\bin
path追加:%OPENSSL_HOME%
ii 新增 OPENSSL_CONF:D:\dev\OpenSSL\OpenSSL-Win64\bin\openssl.cfg
如果不配置全局 OPENSSL_CONF 可以在当前操作窗口执行
set OPENSSL_CONF=D:\dev\openssl\openssl.cnf
4 生成证书,我直接在ngnix下html目录中生成的,打开cmd到生成证书位置
4.1 创建私钥
执行命令:openssl genrsa -des3 -out demo.key 1024(demo是文件名,可以自定义),此处要输入和验证密码(本次设置为123456),请记住改密码,后面会用到。
4.2 创建csr证书
执行命令:openssl req -new -key demo.key -out demo.csr(key文件为刚才生成的文件,demo为自定义文件名),如下图所示。这里主要设置的是国家地区以及组织名称等信息,最重要的是Common Name,这里输入的就是我们要用https访问的域名。完成以上步骤后,ssl文件夹中会生成demo.csr和demo.key两个文件
4.3 去除密码
在加载SSL支持的Nginx并使用上述私钥时除去必须的口令,否则会在启动nginx的时候需要输入密码。
在命令行中执行此命令:openssl rsa -in demo.key -out demo.key。如下图所示,此命令需要输入刚才设置的密码。
4.4 生成crt证书
在命令行中执行此命令:openssl x509 -req -days 365 -in demo.csr -signkey demo.key -out demo.crt。
4.5 证书生成完毕,我们在ssl文件夹中可以看到生辰的证书文件,我们要用到的就是demo.crt和demo.key。
5 修改nginx配置,在server{}中加入如下代码,如下图所示
server {
listen 9443 ssl;
server_name localhost;
ssl_certificate fbunion.cn.pem;
ssl_certificate_key fbunion.cn.key;
# ssl_certificate server.crt;
# ssl_certificate_key server.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
命令梳理:
openssl genrsa -des3 -out server.key 1024
openssl req -new -key server.key -out server.csrcopy server.key server.key.bak
openssl rsa -in server.key.bak -out server.keyopenssl x509 -req -days 10240 -in server.csr -signkey server.key -out server.crt
参考连接地址:
https://www.cnblogs.com/vincent-li666/p/5851463.html
https://blog.csdn.net/sunroyfcb/article/details/83592553
https://blog.csdn.net/weixin_44316575/article/details/85328224