windows下搭建本地https测试环境

最近要做一个手机浏览器调用摄像头的功能,反正各种限制吧,需要部署一个本地的https环境,本来以为挺复杂的,没想到竟然so easy?

以前申请阿里云的ssl服务的时候就觉得还挺容易的,然而搞个假的竟然更容易???

好吧可能对我来说没踩坑就是容易的哈哈(一堆废话...)

第一步:使用openssl生成密钥privkey.pem

openssl genrsa -out privkey.pem 1024/2038

结果如图

第二步:使用密钥privkey.pem生成证书server.pem

openssl req -new -x509 -key privkey.pem -out server.pem -days 365

结果如图,这里需要填证书信息,我就随便填的(本来以为Common Name随便填后面会不能用,然而并没有啥影响)

经过以上两步就能在当前目录下看到生成的证书文件了

第三步:配置nginx

server {
    listen 443 ssl;
    server_name  localhost;

    ssl_certificate server.pem;
    ssl_certificate_key privkey.pem;

    location / {
        root   C:\你的路径\dist;
        index  index.html index.htm;
    }
    # ......
}

我把两个.pem文件跟nginx.conf放在图一个目录下了,如果放在别的目录下,这里路径注意要写对

第四步:重启/启动nginx,就OK啦

# 启动nginx服务器
start nginx
# 重启nginx服务器
nginx -s reload

在第四步的时候出了一点问题

第一个问题:nginx: [emerg] bind()  to 0.0.0.0:443 failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions)

原因是443端口被占用了

解决办法:

(1)查看被哪个进程占用

 netstat -aon | findstr :443

(2)根据进程号查找到对应的进程/应用名称,在“任务管理器”中找到对应的进程(比如我这个就是vmware-hostd.exe),结束任务即可

tasklist|findstr "5760"

第二个问题:nginx: [warn] the "ssl" directive is deprecated, use the "listen ... ssl"....

这个虽然只是warning,不影响使用,但还是有一点强迫症要把它给解掉。出现这个问题的原因是我一开始的nginx配置如下,新版本的nginx提示ssl这个指令已经不建议使用,要使用listen … ssl替代。根据提示使用listen 443 ssl,删除ssl on就行了,最终的nginx.conf的配置就是上面第三步那样

# 出现Warning的nginx配置
server {
    listen 443;
    server_name  localhost;

    ssl on;
    ssl_certificate server.pem;
    ssl_certificate_key privkey.pem;

    location / {
        root   C:\你的路径\dist;
        index  index.html index.htm;
    }
    # ......
}

启动nginx成功后,访问https://localhost就可以了,当然,由于证书是未经认证的,因此会出现红色感叹号提示不安全

以上~

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值