一 背景
移动端调用摄像头需https, 公司移动端网页版页面需调用摄像头,所以需配置https。但是项目未上线,还没有正式域名,只能自己生成证书了。
二 步骤
1 安装nginx,我的版本是1.12.2的
2 openssl下载地址,我下载的Win64 OpenSSL v1.1.1m(msi版本),也可在我网盘中下载
官网地址:https://slproweb.com/products/Win32OpenSSL.html
网盘地址:链接:https://pan.baidu.com/s/1gljmcFAFSs5J5VWmfffxcA 提取码:ke28
3 配置环境变量
新增 OPENSSL_HOME:D:\dev\OpenSSL\OpenSSL-Win64\bin
新增 OPENSSL_CONF:D:\dev\OpenSSL\OpenSSL-Win64\bin\openssl.cfg
path追加:%OPENSSL_HOME%
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{}中加入如下代码,如下图所示
#ssl证书的pem文件路径 ssl_certificate /html/demo.crt; #ssl证书的key文件路径 ssl_certificate_key /html/demo.key; #将请求转成https 80端口用这个 #rewrite ^(.*)$ https://$host$1 permanent; #将请求转成https 非80端口用这个 error_page 497 301 https://$http_host$request_uri;
6 参考连接地址
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