为什么安全证书不受信任?怎么解决?
可以在网页设置中导入安全证书取得信任即可。
1、安全证书不受信任说明服务器出示的证书却不是由计算机操作系统信任的实体颁发。这是需要自己手动导入此安全证书并且取得信任。
2、首先进入浏览器,点击右上角菜单图标打开菜单,选择“设置”。
3、找到“HTTPS/SSL”一栏,点击“管理证书”。
4、进入“证书”窗口后,点击下方的“导入”按钮。
5、在证书导入向导窗口,点击“浏览”,在Go agent的安装目录local文件夹中选中CA文件,点击打开,然后点击下一步。
6、选择“将所有的证书都放入下列存储”,点击下一步;出现导入成功提示。
7、关闭窗口,再次访问网站就不会出现安全证书问题了。
为了确保兼容到所有浏览器,我们必须在阿里云上部署中间证书,如果不部署证书,虽然安装过程可以完全也不会报错,但可能导致Android系统,Chrome 和 Firefox等浏览器无法识别。请到 中间证书下载工具,输入您的Servercer,然后下载中间证书,请将中间证书保存为Chaincer。
服务器证书和中间证书连接
首先我们需要将中间证书Chaincer加入到服务器证书Servercer文件中,请将Chaincer中的所有内容复制,并粘贴到Servercer,顺序是: 第一段,服务器证书;第二段,中间证书,如下:
-----BEGIN CERTIFICATE-----
MIIEsTCCA5mgAwIBAgIDBfoqMA0GCSqGSIb3DQEBCwUAMEcxCzAJBgNVBAYTAlVT
………Server Certificate…………
T0hUGo/wiwTBUafyk1A+LlSUE+dYqzbHYV9Q4d83UIzz9vXO4wmSRgV0udjGN2GR
W7oiGmI=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEsTCCA5mgAwIBAgIDBfoqMA0GCSqGSIb3DQEBCwUAMEcxCzAJBgNVBAYTAlVT
………Chain Certificate…………
T0hUGo/wiwTBUafyk1A+LlSUE+dYqzbHYV9Q4d83UIzz9vXO4wmSRgV0udjGN2GR
W7oiGmI=
-----END CERTIFICATE-----
将上一步修改好的Servercer保存一下,准备后面和KEY一起上传。
证书上传阿里云
点击“负载均衡”-“证书管理”-“创建证书”
“证书名称”请设定一个好记的标识。
“证书类型”选择“服务器证书”。
“证书内容”请将刚才保存的Servercer(包含了中间证书),全部复制并粘贴。
“私钥”请将刚才Serverkey,复制并粘贴。
“证书region”请选择要使用证书的地域。目前如需要在多个地域使用证书,请在多个地域上传。
部署证书
在“负载均衡”菜单点击“实例管理”,选择需要部署证书的实例,点击“管理”。
选择“添加监听”:
“前端协议”选择“HTTPS”:“443”
“后端协议”可以选择“443”或者“80”
“服务器证书”选择刚刚上传的服务器证书。
点击“下一步”,完成SSL证书的安装。
常见问题
为何有些浏览器可以识别我的证书,有些浏览器却会报错?
首先,请确保您已经完成了“服务器证书和中间证书的连接”,如果上传的服务器证书中没有中间证书,有些无法自动下载中间证书的系统,就无法识别服务器证书的有效性。
SSL证书路径有2种,一种安装时的SSL证书路径,是指证书文件上传到服务器的路径,也就是存放位置;
另一种就是在查看证书时候看到的SSL证书路径,应该是指,证书以及颁发该证书的中间证书、颁发中间证书的根证书,之间的信任关系,也就是证书链。
让我们花几分钟时间讨论一下中间证书和根CA证书。SSL(或者更准确地说,TLS)是一项大多数终端用户知之甚少甚至一无所知的技术。即使是获取了SSL证书的人通常也只知道他们需要SSL证书,而且他们必须在服务器上安装SSL证书,才能通过HTTPS为网站提供服务。当提到中间证书和CAs、根证书和CAs时,大多数人的目光开始变得呆滞。
在进一步讨论之前,我们需要先引入证书链的概念。提一个问题:您的浏览器如何知道是否应该信任网站的SSL证书 受信任的根的任何下级证书都是受信任的。这在技术层面上是如何工作的呢
当你访问一个网站时,浏览器会查看它的SSL证书,并快速的验证证书的真实性。浏览器会检查证书的有效期、确保证书没有被撤销、验证证书的数字签名。
浏览器循着证书链对证书进行身份验证的操作。要获得颁发的SSL证书,首先要生成证书签名请求(CSR)和私钥。最简单的迭代,你将CSR发送给证书颁发机构,然后它使用来自其根的私钥签署SSL证书并将其发送回来。
现在,当浏览器看到SSL证书时,它会看到证书是由其根存储中的一个受信任根颁发的(或者更准确地说,使用根的私钥签名)。因为它信任根,所以它信任根签名的任何证书。为了使你更容易理解,上述内容我们作了简化,将服务器证书直接链到根。现在加入中间证书。
证书颁发机构不会直接从它们的根证书颁发服务器/叶子证书(最终用户SSL证书)。这些根证书太宝贵了,直接颁发风险太大了。
因此,为了保护根证书,CAs通常会颁发所谓的中间根。CA使用它的私钥对中间根签名,使它受到信任。然后CA使用中间证书的私钥签署和颁发终端用户SSL证书。这个过程可以执行多次,其中一个中间根对另一个中间根进行签名,然后CA使用该根对证书进行签名。这些链接,从根到中间到叶子,都是证书链。下面是证书链的可视化图形,为了便于理解,简化复杂的过程,我们只在证书链中加入一个中间证书,实际的证书链通常要复杂得多。
你可能会注意到,当CA颁发SSL证书时,它还会发送需要安装的中间证书。这样,浏览器就能够完成证书链,并将服务器上的SSL证书链接回它的一个根。浏览器和操作系统处理不完整链的方式各不相同。有些只会在中间证书丢失时发出问题并报错,而另一些则会保存和缓存中间证书,以防它们日后派上用场。
数字签名有点像数字形式的公证。当根证书对中间证书进行数字签名时,它实际上是将部分信任转移给中间证书。因为签名直接来自受信任根证书的私钥,所以它是自动受信任的。
任何时候,只要向浏览器或设备提供SSL证书,它就会接收证书以及与证书关联的公钥。它通过公钥验证数字签名,并查看它是由谁生成的(即由哪个证书签名的)。你现在可以开始把这些拼凑起来。当您的浏览器在网站上验证最终用户SSL证书时,它使用提供的公钥来验证签名并在证书链上向上移动一个链接。重复这个过程:对签名进行身份验证,并跟踪签名的证书链,直到最终到达浏览器信任存储中的一个根证书。如果它不能将证书链回其受信任的根,它就不会信任该证书。
这其实很简单。Root CA(根CA)是拥有一个或多个可信根的证书颁发机构。这意味着它们根植于主流浏览器的信任存储中。中间CAs或子CAs是由中间根发出的证书颁发机构。 它们在浏览器的信任存储中没有根,它们的中间根会链回到一个受信任的第三方根。这有时称为交叉签名。
正如我们前面讨论的,CA并不直接从它们的根颁发证书。他们通过颁发中间证书并使用中间证书签署证书,增加根证书的安全性。这有助于在发生误发或安全事件时最小化和划分损害,当安全事件发生时,不需要撤销根证书,只需撤销中间证书,使从该中间证书发出的证书组不受信任。
我们刚描述了根和中间体,涉及到证书颁发机构、证书链和加密签名的信任模型,本质上归结到一个词:PKI或公钥基础设施。到目前为止,我一直避免过多地使用这个术语,除非你深入了解一些细节,否则它看起来非常抽象。
文章参考自:
FreeBufCOM
自制Https证书并在Spring Boot和Nginx中使用
SSL/TLS站点应用面临的问题有以下几点:
SSL证书安装错误;因为不熟悉SSL证书技术引发的问题
网站无法访问
升级到 HTTPS 后,网站部分资源不加载或提示不安全
密码通信之前后的数据是不受保护的,SSL/TLS仅对通信过程中的数据进行保护
0条评论