内网使用自签名证书 浏览也可以“安全”

内容分享3小时前发布
0 7 0

背景

正常情况下,我们浏览器是显示安全小锁的,需要网站具有域名的所有权,并且有权威的CA机构来颁发证书,保证了用户通过https协议访问的安全。显示不安全的情况,大致有以下四种:

1.证书过期

目前各浏览器支持的证书有效期都在1年左右,所以许多网站管理人员常常忽略掉证书的有效期,导致证书过期,不能及时续费,这种情况浏览器就会在用户访问时提示不安全警告。

2.域名不匹配

SSL证书一个最主要的作用就是核验网站身份,所以证书必须与对应的域名绑定,如果访问的域名与证书中设置的域名不一致,浏览器也会发出警告。域名不匹配可能是配置证书时域名设置错误,也有可能由于多个网站使用同一张SSL证书导致。

3.部署了不受信任的证书

许多小公司为了节省成本,会选择通过第三方平台或者自己开发制作自签名SSL证书。这些自签名证书虽然也能使网站实现HTTPS协议,但由于不是由浏览器信任的CA机构签发,会被浏览器判定为不安全证书进行提示。只有是由受信任根证书所签发出来的SSL证书,浏览器才会认为是安全的,所以部署SSL证书必定要选择权威、正规的SSL证书服务商。

4.系统时间错误

系统时间错误时很容易被忽视的一个缘由,许多浏览器会根据系统时间而非自然时间来判断网站的证书是否已经过期。所以如果系统时间设置错误,即便证书还没有过期,也会被浏览器误判,导致页面显示错误提示。这种情况也最好解决,只要将系统时间调整为正确时间就可以避免这种问题。

场景

本地测试机器两台:

1.centos7.9.2009

2.win10

需要在测试机器上部署多套环境,例如discuz3.5,wordpress等等网站时,会出现类似不安全的提示:

内网使用自签名证书 浏览也可以“安全”

参考

经过搜索之后发现,大致有三个比较大的部分

1.使用openssl生成自签名

2.对网站进行证书设置

3.客户端电脑进行hosts设置,并安装信任自签名的证书

解决

1.使用openssl生成自签名

查看centos7.9中openssl的默认版本

openssl version
OpenSSL 1.0.2k  

这个版本生成证书时不支持生成 证书主题背景的备用名称。

所以,我们需要先把openssl版本升级到1.1.1以上。

升级openssl

下载:
https://www.openssl.org/source/

内网使用自签名证书 浏览也可以“安全”

wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz

解压编译安装

tar -zxvf openssl-1.1.1c.tar.gz 
cd openssl-1.1.1g
sudo ./config --prefix=/usr/local/openssl
sudo make -j 16
sudo make install
sudo mv /usr/bin/openssl /usr/bin/openssl.bak
sudo ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl

sudo vim /etc/ld.so.conf 打开文件,把/usr/local/openssl/lib加的文件最后:

内网使用自签名证书 浏览也可以“安全”

sudo ldconfig -v # 设置生效

内网使用自签名证书 浏览也可以“安全”

检查版本,发现是1.1.1g,完成。

使用以下命令生成证书和私钥(这里我们生成十年的通配符*.pro.com)

openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes   -keyout pro.com.key -out pro.com.crt -subj "/CN=*.pro.com"   -addext "subjectAltName=DNS:pro.com,DNS:*.pro.com,IP:192.168.131.4"

2.对网站进行证书设置

内网使用自签名证书 浏览也可以“安全”

3.客户端电脑进行hosts设置,并安装信任自签名的证书

这里的客户端使用的windows10,路径如图所示

内网使用自签名证书 浏览也可以“安全”

如果直接无法修改,可以在桌面复制一份文件,改完之后使用管理员权限覆盖到这里也可以。

导出证书文件

内网使用自签名证书 浏览也可以“安全”

这里我们需要把crt文件导出到windows10机器上的桌面上(其他路径也可以),然后开始导入

内网使用自签名证书 浏览也可以“安全”

选择本地计算机,点击下一步

内网使用自签名证书 浏览也可以“安全”

选择受信任的根证书颁发机构

内网使用自签名证书 浏览也可以“安全”

点击完成,之后就导入成功了。

结果展示

4.大功告成

内网使用自签名证书 浏览也可以“安全”

内网使用自签名证书 浏览也可以“安全”

参考链接:

https://www.coder.work/article/7758786

https://www.cnblogs.com/digdeep/p/13615545.html

https://www.zhihu.com/question/551300750/answer/2681354691

欢迎大家提出不一样的观点,我们一起讨论,

我是辣个男人,一个运维人。

© 版权声明

相关文章

7 条评论

  • 头像
    吴辉霞 读者

    要求每个用户都安装证书,有点不现实

    无记录
    回复
  • 头像
    咖啡加香菜 读者

    确实,不过这个是内部测试用的,适合在内网使用,上线之后还是建议使用公网,去购买真正的域名就可以了

    无记录
    回复
  • 头像
    阮糯米饭团 投稿者

    自签名的证书,需要有主题备用证书名称,否则绿不了的,可以按照文章流程再试试看

    无记录
    回复
  • 头像
    迷糊喜欢吃迷糊桃 投稿者

    以前自己随便发个证书就可以,现在不行了

    无记录
    回复
  • 头像
    小溪 读者

    但是 不绿啊

    无记录
    回复
  • 头像
    A李师傅专业藕片钻孔 投稿者

    公网不

    无记录
    回复
  • 头像
    阑珊一笑 读者

    收藏了,感谢分享

    无记录
    回复