Chrome下自签名证书提示无效的问题

发现chrome验证证书很严格,必须带有Subject Alternative Name.
签发csr时,修改openssl.cnf :

vi /etc/ssl/openssl.cnf

(windows  所在目录 :\OpenSSL\bin\cnf\openssl.cnf )
在[ req ]节添加
req_extetions = v3_req

生成 CSR 文件时读取名叫 v3_req 的节的配置,
[ v3_req ] # Extensions to add to a certificate request 
basicConstraints = CA:FALSE 
keyUsage = nonRepudiation, digitalSignature, keyEncipherment 
subjectAltName = @alt_names

alt_names添加域名
DNS.1 = localhostDNS.2 = your.doman.com

生成csr

ubuntu: openssl req -sha256 -newkey rsa:2048 -nodes -keyout  ssl.key -x509 -days 3650 -out  ssl.crt -config ./cnf/openssl.cnf -extensions v3_req
windows: openssl req -sha256 -newkey rsa:2048 -nodes -keyout  ssl.key -x509 -days 3650 -out  ssl.crt -config ./cnf/openssl.cnf -extensions v3_req

填写完信息后,即可生成  对应的 key 和  srt 文件;

将文件 放到nginx 对应的ssl  key  的配置目录

接下来,关键的一步:把证书导入到当前系统

通过单击“开始”按钮,在“搜索”框中键入 certmgr.msc,然后按 Enter,打开“证书管理器”。‌ 如果系统提示输入管理员密码或进行确认,则需要键入密码或提供确认。

windows 7 证书管理器(certificates manager)

先展开左边栏里的“受信任的根证书颁发机构”,选中其下的“证书”,然后点击菜单栏的“操作”——>“所有任务”——>“导入”,即可打开证书导入向导。然后就可以接着前面的“证书导入向导”那幅图(快速跳转)开始往下操作了。

另外,在查看证书详情那一步,如果打开详细信息标签页,可以看到有个复制到文件的按钮,单击此按钮即可保存该证书为一个 CA 文件。

然后重启浏览器即可。

参考:https://blog.zencoffee.org/2013/04/creating-and-signing-an-ssl-cert-with-alternative-names/

http://blog.chinaunix.net/uid-192452-id-5772724.html

https://cnzhx.net/blog/self-signed-certificate-as-trusted-root-ca-in-windows/

添加自签发的 SSL 证书为受信任的根证书

添加自签发的 SSL 证书为受信任的根证书

 

通过 SSL 加密的 HTTPS 连接访问网站时,需要安装并配置一个受信任的 CA 根证书Trusted CA Root Certificate)。平常访问一些加密网站之所以不需要自己安装证书,是因为系统或浏览器已经提前安装了一些受信任机构颁发的证书。但有些时候访问一些组织或个人自己签发证书的网站的时候,就会收到浏览器发出的警告。此时可以将该证书添加到“受信任的根证书颁发机构”存储区,然后就不会再收到安全提示了。

1. 前言

为什么要自己签发安全证书Self-signed CA)呢?因为一些受信任机构颁发的证书年费通常不菲,而且有些时候公司或者组织内部小范围使用的话没有信任问题,这时就可以自己签发一个安全证书。

对于这种安全证书,能否被信任就需要用户自己练就火眼金睛去识别了。比如我签发的证书,我的朋友就多半认为可以被信任,其他人不了解我的话就多半不信任。

在 VPS 上部署了 SSL 服务之后,因为证书(CA)是自己签发的,通过 HTTPS 加密链接访问网站的时候会提示证书不被信任之类的。可以将证书添加到 Windows 证书管理器的“受信任的根证书”目录中,以后 HTTPS 加密访问自己的网站就不会再收到安全提示了。

警告:只有当你确认要安装的安全证书是可以信任的情况下才能安装,否则可能带来严重的安全问题,甚至造成财产损失。下面将介绍如何安装非授权机构发行的安全证书为受信任的根证书。

因为安全证书管理机制不同,下面介绍中涉及到:

  1. Internet Explorer 9 —— 微软系的都差不多,以下简称 IE。
  2. Chrome —— Chrome 版本变动频繁,下面以 21.0.1180.60 版本为例,而且因为 Chrome 使用的就是 Windows 系统里的证书,没有独立的证书存储单元,所以搞定 IE 也就搞定 Chrome 了。从 Chrome 中打开证书管理器的方法是,设置(Settings)——> 高级设置(Advanced Settings)——> HTTPS / SSL ——> 管理证书(Manage Certificates …)。
  3. 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 的攻击者。您应该就此停止操作。但是,如果您为之工作的组织机构会自行生成证书,而且您要尝试用此类证书连接本组织机构的内部网站,则您可以安全地解决此问题。您可将本组织机构的根证书作为“根证书”导入,由本组织机构颁发或验证的证书随即会得到信任,下次尝试连接内部网站时就不会出现此错误。请联系贵组织机构的支持人员,让他们协助您向计算机中添加新根证书。

©

Chrome:不受信任的证书----openssl签发带Subject Alternative Name的证书的更多相关文章

  1. IIS6的SSL配置,如何配置SSL到登陆页,如何将SSL证书设置成受信任的证书

    一. 申请证书1. 到受信任的机构申请 略 2. 到自建的证书服务器申请 a. 安装证书服务 通过控制面板中的“添加/删除程序”,选择“添加/删除Windows组件”.在Windows组件向导中找到“ ...

  2. 自签名证书说明——自签名证书的Issuer和Subject是一样的。不安全的原因是:没有得到专业SSL证书颁发的机构的技术支持?比如使用不安全的1024位非对称密钥对,有效期设置很长等

    一般的数字证书产品的主题通常含有如下字段:公用名称 (Common Name) 简称:CN 字段,对于 SSL 证书,一般为网站域名:而对于代码签名证书则为申请单位名称:而对于客户端证书则为证书申请者 ...

  3. 【chrome】安装证书并配置为受信任网站连接(windows)

    当出现网站连接非私密连接不受信任时,可添加证书crt文件到系统证书里设置为受信任 1.chrome设置中, 高级-- 管理证书 2.选择  受信任的根证书颁发机构 -- 导入 3.下一步  找到所需要 ...

  4. 在Postman中使用不受信任的SSL证书

    阅读目录 第一种方案——临时添加到受信任的证书颁发机构: 第二种方案——永久添加到受信任的证书颁发机构: add by zhj: 在http://www.cnblogs.com/ajianbeyour ...

  5. 在Postman中使用不受信任的SSL证书(转)

    add by zhj: 在http://www.cnblogs.com/ajianbeyourself/p/3898911.html中提到: 对于不受信任的证书,浏览器会发出告警,不过这些也只是告警而 ...

  6. nginx https ssl 设置受信任证书[原创]

    1. 安装nginx 支持ssl模块 http://nginx.org/en/docs/configure.html yum -y install openssh openssh-devel (htt ...

  7. 添加自签发的 SSL 证书为受信任的根证书

    原文:http://cnzhx.net/blog/self-signed-certificate-as-trusted-root-ca-in-windows/ 添加自签发的 SSL 证书为受信任的根证 ...

  8. nginx https ssl 设置受信任证书[转然哥]

    nginx https ssl 设置受信任证书[原创] 1. 安装nginx 支持ssl模块 http://nginx.org/en/docs/configure.html yum -y instal ...

  9. office加载项部署清单签名的证书或其位置不受信任

    异常信息: System.Security.SecurityException: 此应用程序中的自定义功能将不起作用,原因是用于为 BIMT写作指导 的部署清单签名的证书或其位置不受信任.请向管理员寻 ...

随机推荐

  1. Django 之 restframework 解析器的使用

    请求头ContentType application/x-www-form-urlencoded 这应该是最常见的 POST 提交数据的方式了.浏览器的原生 <form> 表单,如果不设置 ...

  2. C/C++函数调用时传参过程与可变参数实现原理

    C/C++函数调用时传参过程与可变参数实现原理 C语言的经典swap问题 在学习C语言的时候,我们大都遇到过一些经典例题,这些经典例题背后所代表的是往往是C/C++背后的一些运行原理,比如下面这个示例 ...

  3. web服务器-nginx

    一.nginx之前 同步与异步: 同步与异步的重点在消息通知的方式上,也就是调用结果的通知方式不同. 同步:当一个同步调用发出去后,调用者要一直等待调用的结果通知后,才能进行后续的操作. 异步:当一个 ...

  4. 详解Linux操作系统的iptables原理及配置

    linux网络防火墙 netfilter :内核中的框架,过滤框架,网络过滤器! iptables  :实现数据过滤.net.mangle等规则生成的工具 防火墙:硬件.软件.规则(匹配规则.处理办法 ...

  5. Redis持久化 - RDB和AOF

    原文:https://segmentfault.com/a/1190000016021217 一.持久化的作用 1. 什么是持久化 持久化(Persistence),即把数据(如内存中的对象)保存到可 ...

  6. 项目Beta冲刺 随笔集合

    课程: 软件工程1916|W(福州大学) 作业要求: 项目Beta冲刺 团队名称: 火鸡堂 作业目标: 尽力交付 火鸡堂 队员学号 队员姓名 博客地址 备注 221600111 彼术向 http:// ...

  7. 什么是 MFA?

    Multi-Factor Authentication (MFA) 是一种简单有效的最佳安全实践方法,它能够在用户名和密码之外再额外增加一层安全保护. 启用 MFA 后,用户登录阿里云网站时,系统将要 ...

  8. 正则,js函数math()提取混乱字符串中多个字符串内容

    var a='start111111endstart222222endasdfasdfasdfakjsfhaksdf'+ 'start333333endstart444444end6666666666 ...

  9. iOS 应用逆向工程分析流程图

    http://bbs.iosre.com/t/ios/12432

  10. WinDbg常用命令系列---!uniqstack

    简介 这个!uniqstack扩展扩展显示的所有线程的堆栈的所有当前进程,不包括显示为具有重复项的堆栈中. 使用形式 !uniqstack [ -b | -v | -p ] [ -n ] 参数 -b将 ...