https本地测试环境搭建的一次回顾(关键词:mkcert,windows10,iis,腾讯云,证书,防火墙,ip访问,手机电脑交互,笔记本作为服务器)

        学习使用arjs,其中的api要求一定得在localhost或者https环境下使用,故有此文。踩坑极多,记录以备后需。

一 https访问与ssl证书

        https和http的主要差别就是https的服务器需要ssl证书,而ssl证书依赖于域名。ssl证书由一或者多个中间证书保证安全,而中间证书由根证书保证安全,有一条明确的授权链,所以服务器装ssl证书需要一条链的证书都齐全才能使用。

        我先尝试了用mkcert伪造ssl证书,没有提供域名而是用了笔记本电脑的局域网ip。【关于mkcert的使用网上有很多教程,建议自行参考。】但是根据网上教程安装了根证书与局域网ip的证书后,iis仍一直提示缺少中间证书,恼,于是去腾讯云花了8块大洋买了个域名,再用这个域名在腾讯云申请了免费证书,回来安装根证书与域名ssl证书,同样提示缺少中间证书。经查,安装了一个与rsa有关的中间证书【大概因为我的域名ssl证书使用的是rsa加密,这个rsa证书我放在github上,可以来这里下载:RSA证书】,终于显示可以使用了。

        *我觉得mkcert应该也是缺少这样一个rsa证书所以不能使用,但我没有再尝试。

        *根证书与中间证书都是.crt文件,双击使用就好。在iis(windows自带的建网站用的系统,直接在搜索栏打iis就会出现)用ssl证书时需要先在最大的主页点击服务器证书引入,然后在建网站的时候才能选择。

https本地测试环境搭建的一次回顾(关键词:mkcert,windows10,iis,腾讯云,证书,防火墙,ip访问,手机电脑交互,笔记本作为服务器)_第1张图片

 如上,要记得先添加证书。点进去的自己看界面学。

https本地测试环境搭建的一次回顾(关键词:mkcert,windows10,iis,腾讯云,证书,防火墙,ip访问,手机电脑交互,笔记本作为服务器)_第2张图片

 建https服务器时的ssl证书选择,就是刚刚添加的服务器证书。以及记得勾选具体ip地址。主机名的部分我填了域名,正常使用,这张图没填。

        *用ip和localhost访问这个https服务器会提示不安全,这个很正常,因为ssl证书只认证了你制作证书时给的域名。高级的ssl证书也许可以加ip访问,但是我没钱。

        *腾讯买域名需要实名认证,需要一点点时间(大约两三个小时?肯定没有一天),办ssl证书好像也需要和实名间隔一段时间(一天?)反正趁早。以及一个坑点是身份证要同时传正反面,但是示例中只有一面,否则就算过了信息模板的实名认证也会在域名的实名绑定下失败。

        *只是本地测试,不需要进行网站的备案。腾讯云小程序如果提示要求备案,换到pc端。

        *因为是本地测试,所以腾讯云上的ssl证书中的解析ip写本地ip就好,192.168.xx.xx的那个,而不是广域网ip。

二        手机(其他设备)与电脑交互

        注意关掉电脑的防火墙,否则会不停报time out。或者也可以设置ip过滤,但是我没试。

        如果不关防火墙,则只能访问http服务器。比如iis的默认网站(80端口)是可以访问,不过前缀写成https就不行。而https服务器的网站,在我的测试下没办法用http访问,即便只是一个最简单的hello world页面,什么都没有。按照我浅薄的网络知识,http访问应该是可以被https兼容的,可能是和iis添加网站页面中的那一堆选项有关吧。如果有了解详情的希望能在评论区解答一下。

 

你可能感兴趣的:(https,服务器,腾讯云,ssl)