添加自签发的 SSL 证书为受信任的根证书
原文:http://cnzhx.net/blog/self-signed-certificate-as-trusted-root-ca-in-windows/
添加自签发的 SSL 证书为受信任的根证书
通过 SSL 加密的 HTTPS 连接访问网站时,需要安装并配置一个受信任的 CA 根证书(Trusted CA Root Certificate)。平常访问一些加密网站之所以不需要自己安装证书,是因为系统或浏览器已经提前安装了一些受信任机构颁发的证书。但有些时候访问一些组织或个人自己签发证书的网站的时候,就会收到浏览器发出的警告。此时可以将该证书添加到“受信任的根证书颁发机构”存储区,然后就不会再收到安全提示了。
1. 前言¶
为什么要自己签发安全证书(Self-signed CA)呢?因为一些受信任机构颁发的证书年费通常不菲,而且有些时候公司或者组织内部小范围使用的话没有信任问题,这时就可以自己签发一个安全证书。
对于这种安全证书,能否被信任就需要用户自己练就火眼金睛去识别了。比如我签发的证书,我的朋友就多半认为可以被信任,其他人不了解我的话就多半不信任。
在 VPS 上部署了 SSL 服务之后,因为证书(CA)是自己签发的,通过 HTTPS 加密链接访问网站的时候会提示证书不被信任之类的。可以将证书添加到 Windows 证书管理器的“受信任的根证书”目录中,以后 HTTPS 加密访问自己的网站就不会再收到安全提示了。
警告:只有当你确认要安装的安全证书是可以信任的情况下才能安装,否则可能带来严重的安全问题,甚至造成财产损失。下面将介绍如何安装非授权机构发行的安全证书为受信任的根证书。
因为安全证书管理机制不同,下面介绍中涉及到:
- Internet Explorer 9 —— 微软系的都差不多,以下简称 IE。
- Chrome —— Chrome 版本变动频繁,下面以 21.0.1180.60 版本为例,而且因为 Chrome 使用的就是 Windows 系统里的证书,没有独立的证书存储单元,所以搞定 IE 也就搞定 Chrome 了。从 Chrome 中打开证书管理器的方法是,设置(Settings)——> 高级设置(Advanced Settings)——> HTTPS / SSL ——> 管理证书(Manage Certificates …)。
- Firefox —— Firefox 现在版本升级也很快了,好在界面、功能和操作变化不是太大,下面举例用的是 Firefox 15。Firefox 的安全证书管理是独立的,请参考另一篇文章:将自签发的 SSL 证书导入为 Firefox 中的受信任根证书。
2. 从Windows 自带的浏览器 Internet Explorer 中导入¶
使用 IE 通过 HTTPS 打开相应网站,会收到如下图所示的安全警告:
Internet Explorer 9 – 证书错误:访问过程中断。提示说“此网站的安全证书有问题”。此时我们可以点击“继续浏览此网站(不推荐)”来继续。
中文显示的是:
此网站的安全证书有问题。
此网站出具的安全证书不是由受信任的证书颁发机构颁发的。安全证书问题可能显示试图欺骗您或截获您向服务器发送的数据。建议关闭此网页,并且不要继续浏览该网站。
- 单击此处关闭该网页。
- 继续浏览此网站(不推荐)。
详细信息
如果通过单击链接到达此页面,请检查地址栏中的网站以确保该地址是您希望到达的页面。转到如https://example.com
等网站时,请尝试将 “www” 添加到地址中,变为https://www.example.com
。有关详细信息,请参阅 Internet Explorer 帮助中的“证书错误”。
在出现上图所示的证书错误警告时,如果幸运的话,可以在浏览器地址栏的最右边看到红色背景的文字“证书错误”(Certificate Error),如下图所示。
IE 地址栏红色背景的“证书错误”提示,单击“查看证书”后可以直接安装该证书
单击这个错误提示靠下位置的“查看证书(View certificates)”就可以看到该证书的详情,并可以直接安装该证书到 Windows 系统的证书管理器中。如下图所示。
IE 查看证书详情,单击“安装证书”按钮即可开始安装证书
因为是自己签发的安全证书而不是经过认证的机构签发的,所以 Windows 无法自动信任该证书:此 CA 根目录证书不被信任。要启用信任,请将该证书安装到“受信任的根证书颁发机构”存储区。单击“安装证书”按钮即可打开 Windows 证书导入向导,单击“下一步”即可开始安装证书,如下图所示。
证书导入向导
然后系统会询问该证书的存储位置。因为是未经认证的组织或个人自己签发的证书,如果选择让 Windows “根据证书类型,自动选择证书存储”的话,一般会给存储到“中级证书颁发机构”中。以后加密访问该网站的时候还是会收到安全警告。
根据我们的需要 —— 以后打开自己的网站时候不会再发出安全警告,也就是本文的目的,而且又是自己签发的证书,信任不成问题,咱就直接给添加到“受信任的根证书颁发机构”存储中。如下图所示。
Windows 安装安全证书:选择证书存储位置
点选“将所有的证书放入下列存储(P)”,然后单击“浏览(R)”,打开“选择证书存储”窗口来选择。有些时候可能需要选择“显示物理存储区(S)”,然后勾选“受信任的根证书颁发机构”下面的“本地计算机(Local Computer)”来存储。
选择后单击“确定”按钮,然后“下一步”。此时可能会收到安全警告(如下图),提示添加的是“根(root)”证书(信任级别最高)。下图中所示证书就是水景一页自己签发的了。
确认添加根证书
剩下的就是确认几次,任务完成!然后关闭浏览器重新打开,就可以试试效果了。
3. 通过 Windows 证书管理器安装¶
因为 Windows 和 IE 都是微软自家的,管理的是同一个证书管理器。所以不管是从 Windows 系统的证书管理器中导入安装证书,还是直接根据 IE 的提示来安装,效果都是一样的。唯一不同的是,通过 Windows 证书管理器来安装证书的话,需要先将安全证书(.crt 类型的那个文件)保存到本地磁盘。如果不能直接获取该证书,请先看另一篇文章介绍的从 Firefox 证书管理器中导出安全证书一节吧。
在 Windows 7 中(via 微软),要查看或管理证书,必须以管理员身份进行登录,才能执行这些步骤。可以使用“证书管理器”查看有关证书的详细信息,修改、删除这些证书,或者申请新证书。要打开证书管理器:
通过单击“开始”按钮,在“搜索”框中键入 certmgr.msc,然后按 Enter,打开“证书管理器”。 如果系统提示输入管理员密码或进行确认,则需要键入密码或提供确认。
windows 7 证书管理器(certificates manager)
先展开左边栏里的“受信任的根证书颁发机构”,选中其下的“证书”,然后点击菜单栏的“操作”——>“所有任务”——>“导入”,即可打开证书导入向导。然后就可以接着前面的“证书导入向导”那幅图(快速跳转)开始往下操作了。
另外,在查看证书详情那一步,如果打开详细信息标签页,可以看到有个复制到文件的按钮,单击此按钮即可保存该证书为一个 CA 文件。
4. Chrome 中的安全证书错误提示¶
因为 Chrome 使用的就是 Windows 系统里的证书,没有独立的证书存储单元,所以搞定 IE 也就搞定 Chrome 了。从 Chrome 中打开证书管理器的方法是,设置(Settings)——> 高级设置(Advanced Settings)——> HTTPS / SSL ——> 管理证书(Manage Certificates …)。
在 Chrome 中遇到网站证书问题时会收到类似下面的错误提示:
该网站的安全证书不受信任!
您尝试访问的是 cnzhx.net,但服务器出示的证书是由您计算机的操作系统不信任的实体所颁发。这可能表明服务器已自行生成了安全凭据,Google Chrome 浏览器认为其中的身份信息不可靠;也可能表明攻击者正试图拦截您的通信内容。
您不应再继续,尤其是如果您以前从未在此网站看到这一警告信息,则更不应继续操作。
- 仍然继续
- 返回安全连接
- 帮助我了解
连接安全网站时,网站所在的服务器会向您的浏览器出示所谓的“证书”,用于验证其身份。这种证书包含网站地址等身份信息,已经过您计算机信任的第三方验证。通过核实证书中的地址是否与网站地址相符,可以证实自己正与所要访问的网站进行安全通信,而不是正与第三方(如您网络中的攻击者)进行通信。这种情况下,证书未经过您计算机信任的第三方进行验证。任何人都可以创建证书,随意声称自己是任何网站,因此必须要由受信任的第三方对证书进行验证。如果未经上述验证,证书中的身份信息就没有意义。因此,您无法验证与自己通信的对象是真正的 cnzhx.net,还是某个自行生成证书,声称自己是 cnzhx.net 的攻击者。您应该就此停止操作。但是,如果您为之工作的组织机构会自行生成证书,而且您要尝试用此类证书连接本组织机构的内部网站,则您可以安全地解决此问题。您可将本组织机构的根证书作为“根证书”导入,由本组织机构颁发或验证的证书随即会得到信任,下次尝试连接内部网站时就不会出现此错误。请联系贵组织机构的支持人员,让他们协助您向计算机中添加新根证书。
本文发表于水景一页。永久链接:<https://cnzhx.net/blog/self-signed-certificate-as-trusted-root-ca-in-windows/>。转载请保留此信息及相应链接。
添加自签发的 SSL 证书为受信任的根证书的更多相关文章
- Vs2019 C# .net core 将证书添加到受信任的根证书存储失败,出现以下错误:访问控制列表(ACL)结构无效
https://www.cnblogs.com/xiyuan/p/10632579.html 使用 vs2017 创建一个 ASP.NET Core Web 应用程序 -> Ctrl + F5 ...
- 将证书添加到受信任的根证书存储失败,出现以下错误:访问控制列表(ACL)结构无效
问题出现情景: 使用 vs2017 创建一个 ASP.NET Core Web 应用程序 -> Ctrl + F5 运行项目 选择是,但是添加证书失败,是什么原因导致的我不知道,有大佬的知道的话 ...
- 微信支付服务器CA证书更换服务器安装der证书的方法 DigiCert的根证书
[重要]微信支付服务器证书更换通知,请开发人员验证以免影响交易 尊敬的微信支付商户&服务商: 因微信支付HTTPS服务器证书的根CA证书将于2018年8月23日到期失效,微信支付计划于2018 ...
- iOS服务器证书不受信任的解决版本
参考文章链接: https://www.cnblogs.com/v-jing/p/6008964.html http://www.cocoachina.com/ios/20151021/13722.h ...
- 配置OpenResty支持SSL(不受信任的证书)
#关闭防火墙 chkconfig iptables off service iptables stop #关闭SELINUX sed -i 's/SELINUX=enforcing/SELINUX=d ...
- java 从 PKCS12(比如pfx格式)证书中提取私钥证书(PrivateKey)和受信任的公钥证书(X509Certificate)的序列号(SerialNumber)
import lombok.Cleanup; import lombok.Getter; import lombok.Setter; import lombok.SneakyThrows; impor ...
- 已处理证书链,但是在不受信任提供程序信任的根证书中终止 - Windows 7安装.Net Framework 4.6.2时出现此问题
https://blog.csdn.net/inchat/article/details/104294302
- IIS6的SSL配置,如何配置SSL到登陆页,如何将SSL证书设置成受信任的证书
一. 申请证书1. 到受信任的机构申请 略 2. 到自建的证书服务器申请 a. 安装证书服务 通过控制面板中的“添加/删除程序”,选择“添加/删除Windows组件”.在Windows组件向导中找到“ ...
- Chrome:不受信任的证书----openssl签发带Subject Alternative Name的证书
Chrome下自签名证书提示无效的问题 发现chrome验证证书很严格,必须带有Subject Alternative Name.签发csr时,修改openssl.cnf : vi /etc/ssl/ ...
随机推荐
- ELK5.4安装Xpack
X-Pack是一个Elastic Stack的扩展,将安全,警报,监控,报告和图形功能包含在一个易于安装的软件包中.在Elasticsearch 5.0.0之前,必须安装单独的Shield.Watch ...
- Java EE之Servlet
1.创建Servlet类 Servlet在Java EE API规范中的定义: Servlet是一个运行在Web服务器中的Java小程序.Servlet将会接收和响应来自Web客户端的请求,使用HTT ...
- kafka 多线程消费
一. 1.Kafka的消费并行度依赖Topic配置的分区数,如分区数为10,那么最多10台机器来并行消费(每台机器只能开启一个线程),或者一台机器消费(10个线程并行消费).即消费并行度和分区数一致. ...
- pg中删除的页是否仍被访问
昨天看到微信群中,有人提问:pg对于标记为删除的页,是否会扫描到? 今天做了一下测试,发现如果删除的是表的最后连续的几个页(根据ctid来确定数据插入先后,只讨论有insert的情况)中的数据,最后几 ...
- codeforces.com/contest/251/problem/C
C. Number Transformation time limit per test 2 seconds memory limit per test 256 megabytes input sta ...
- Linux运维四:文件属性及文件权限
一:文件属性 我们使用ls -lhi命令来查看文件时,会列出一堆的文件属性,如: [root@Gin day7]# ll -hi total 7.8M 260674 -rw-r--r-- 1 root ...
- python 模块之hashlib
Hashlib模块 Python里面的hashlib模块提供了很多加密的算法,这里介绍一下hashlib的简单使用事例,用hashlib的md5算法加密数据,其他的所有加密算法使用方式上基本类似. h ...
- ubuntu内核及系统升级
升级之前,需要先确认ubuntu当前系统版本,使用操作: root@Dy-JXQ-ubuntu-101:~# lsb_release -a No LSB modules are available. ...
- Ansible12:lookup
目录 简单说明 1.file 2.pipe 3.env 4.template 5.csvfile 6.redis_kv 7.etcd 8.password 9.dnstxt 简单说明 在通常情况下,所 ...
- python 获取本机 IP
原文 通过 UDP 获取本机 IP,目前见过最优雅的方法 这个方法是目前见过最优雅获取本机服务器的IP方法了.没有任何的依赖,也没有去猜测机器上的网络设备信息. 而且是利用 UDP 协议来实现的,生成 ...