局域网内多台机器使用自签发证书架设https网站二:实施

网友投稿 413 2022-09-14

局域网内多台机器使用自签发证书架设https网站二:实施

前文再续,书接上一回。上一篇文章说了​​局域网内多台机器使用自签发证书架设1、如果操作系统是server,可以搭建CA服务器 参考文章:《​​​搭建CA服务器​​​》 我搭建了,但因为刚开始的时候思路没有整理清晰,乱试一气,没有试成功。但现在想起来,应该也可以的

2、用makecert.exe 这是微软为WIN7或以前的操作系统准备的证书生成工具,挺好用的。现在WIN10和win2016 server之后用的是一个叫:New-SelfSignedCertificate 的工具,在power shell里面运行的命令。名字真长,看上去就头大。各种参数也很长,完全不像一个命令行工具。微软的好多东西,真是越做越烂。我因为没有WIN10和win2016 server,所以就没试。其实win2012 server也有这个工具,但参数极少,完全没办法用。

makecert.exe 生成根证书的方法是:

makecert -r -pe -n "CN=WebSSLTestRoot" -b 08/01/2018 -e 08/01/2054 -ss root -sr localmachine -len 2048

这样就生成了一个名为“WebSSLTestRoot”的根证书,这个根证书有效期为2018-08-01到2054-08-01(注意日期一定要双位,不足则补零,否则语法报错),并且安装到本机“受信任的根证书颁发机构”里去。(详见拙作《​​使用者备用名称(subject Alternative Name)这个属性。

缺乏这个属性,IE没有问题,但新版本的谷歌浏览器(Chrome 58 及以上版本)是根据这个属性来判断身份的,没有的话就会说“服务器无法证明它就是 * * *”,因而标为不安全,报NET::ERR_CERT_COMMON_NAME_INVALID 的错。

对根证书来说,没有subject Alternative Name,应该没有影响,但网站证书的话必须有,所以,makecert已经不能再用了,至少不能用于生成网站证书。详见参考资料:

​​错误:“主题备用名称缺失”或 NET::ERR_CERT_COMMON_NAME_INVALID 或“您的连接不是私密连接”​​

现在要隆重介绍第三种工具

3、itisscg.exe 这是一个用.NET开发的证书生成工具,图形界面。这个工具小巧玲珑,只有200多K,需要.NET4.6的支持。 官方网址:​​​Alternative Name不用填(由此可知,用makecert.exe来生成根证书应该也是可以的)2)

3)

这样设置,按下生成按钮后,这个根证书,会在本机的个人证书里生成,然后自动拷贝一份到 “受信任的根证书颁发机构” 里。

本来根证书存在于“受信任的根证书颁发机构” 就足够了,不过“本机”的“个人证书”里这份也不要删掉。因为用来签发网站证书的时候要用到。

参考官方指导方法​​​9. Example: Create a “CA Certificate”:​​

二、生成网站证书 有了根证书,就可以用于签发网站证书了。签发的网站证书导入网站服务器,然后客户端导入根证书,则客户端的浏览器就能够信任网站了。就是这么简单。

如上所述,生成网站证书不能用makecert.exe,要用itisscg.exe:

1)输入subject 和 subject alternative name,存储位置为本机(区别于当前用户)

2)

选择根证书进行签发

3)

我的情况是,网站跟CA不是同一台机,签发的网站证书没必要装在CA这台机器上,因此将证书输出到文件里,同时删掉本机存储的这个证书。估计它的流程是不管3721,都要先生成到本机证书存储区域。

然后将这个证书文件,拷到网站服务器,导入到 “本机”的“个人证书”,然后在IIS里与网站的mmc 命令

添加证书管理单元

鼠标右键,导入网站证书。

然后在IIS里绑定

本来双击这个证书文件,也能安装证书。但安装的路径是“当前账号”而不是“本机”,IIS貌似是访问“本机”,“当前账号”下的证书它看不到。

三、客户端导入根证书 将根证书文件拷贝到客户端机器,在“本机”的“受信任的根证书颁发机构” 里导入即可。

完成以上3个步骤,已经大功告成。但是,开发阶段,一个网站往往需要多张证书:

四、网站多张证书

依我看,开发过程中,一个网站往往有两张以上的证书。为什么这么说呢?我们开发的时候,访问本机的网站,一般都用localhost,而别人访问我们,肯定要用IP。虽然证书里的subject alternative name 支持多个域名和IP,但如果是localhost与IP混在一起的话,谷歌浏览器支持,IE又不干了,它会警告说这张证书是颁布给别的网站的。所以localhost要与IP分开成两张证书。

相应地,https要分开绑定:

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:互联网营销师未来将何去何从?薇娅这样说!
下一篇:数字货币
相关文章

 发表评论

暂时没有评论,来抢沙发吧~