1.要下载win32 1.1.1版本的,下载其他版本的总是有问题
https://slproweb.com/products/Win32OpenSSL.html
2.配置环境变量OPENSSL_HOME和OPENSSL_CONF(cfg文件的位置,xxx/openssl.cfg)
在path下添加%OPENSSL_HOME%\bin
3.创建私钥
C:\nginx\ssl> openssl genrsa -des3 -out [name].key 1024
[name]为文件名,任意
输入密码,完成
4、创建csr证书
C:\nginx\ssl> openssl req -new -key [name].key -out [name].csr
5、创建指纹密码
复制 [name].key并重命名为 [name].key.org
C:\nginx\ssl> openssl rsa -in [name].key -out [name].key.org
输入密码,完成
(这一步网上的教程都是org文件在-in后面,让我搞了好久才发现,很恶心。。。。)
6、生成crt证书
C:\nginx\ssl> openssl x509 -req -days 365 -in [name].csr -signkey [name].key -out [name].crt
7、修改nginx配置
server {
listen 443 ssl;
server_name localhost;
ssl_certificate C://nginx//ssl//[name].crt; # 这个是证书的crt文件所在目录
ssl_certificate_key C://nginx//ssl//[name].key; # 这个是证书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; # 这个是指定首页的文件名
}
}
8.windows下 nginx 配置ssl的key是不能存储密码的,否则启动时会提示输入密码
输入后也启动不起来,会报错:
2020/04/21 09:49:09 [alert] 1992#4548: the event “ngx_master_1992” was
not signaled for 5s
解决方案是将密码去除,用法:
openssl rsa -in f:/ssl.key -out f:/ssl.key.unsecure
把生成的unsecure文件放在nginx的key那里就可以访问了