关于浏览器提示证书并非来自可信的授权中心解决办法

该证书并非来自可信的授权中心–解决办法

自从把博客空间搬到MediaTemple(往后简称MT主机),全站SSL加密后安卓手机访问本博客时总时显示“该证书并非来自可信的授权中心”和Firefox浏览器总是显示“sec_error_unknown_issuer”警告,然而在IE/Chrome/Safari上都显示非常正常,到底那里出了问题呢?

20150719151524

曾经MT主机客服发过邮件,得到的回复是:

Thank you for contacting (mt) Media Temple!
I have checked the status of the SSL installation and I can confirm it has been installed and working correctly.
That being said, as this SSL was not provided by us we are unable to provide troubleshooting for any issues that arise from 3rd party SSLs. You should contact the SSL provider in regarding to this issue. As a courtesy I have done a bit of research and found that the problem may be because no Issuer Chain was provided or you did not install it. Please bring this information to your SSL provider for help on what should be done.

后来又重新几次布署SSL,问题依旧。今天终于忍不住向Comodo发现支持请求,得到的回复是:

You may get this error message due to the CA Certificates (Intermediates) were not properly imported on the server.
It shows as follows
——————————————————————–
Trusted by Microsoft? Yes
Trusted by Mozilla? No (unable to get local issuer certificate) UNTRUSTED
——————————————————————–
This can be fixed by importing a proper CA Certificate bundle on your host. Please find the CA-Bundle file from the attachment and upload it on your host to fix this issued.
Please let us know if you need any further assistance.

附件附上“ca-bundle”证书。按以往的经验在MT主机后台中导入相应证书,但是发现还是不行。问题依旧,问题到底出现在那里呢?后来在Comodo支持文档中找到“Certificate Installation: Apache & mod_ssl”这篇文章。里内有一段内容如下:

In the VirtualHost section of the file please add these directives if they do not exist. It is best to comment out what is already there and add the below entries.
SSLEngine on
SSLCertificateKeyFile /etc/ssl/ssl.key/server.key
SSLCertificateFile /etc/ssl/ssl.crt/yourDomainName.crt
SSLCertificateChainFile /etc/ssl/ssl.crt/yourDomainName.ca-bundle ***

这个时候突然想到在MT主机上是有一个etc目录,但里面只有一个php.ini文件,根本没有SSL和SSL.CRT目录,根据以往使用国外主机的经验,马上在etc目录中建立ssl目录,再在ssl目录中建立好ssl.crt目的,然后根据上面内容所提示,把yourDomainName.crt和yourDomainName.ca-bundle放进其中。

20150719151030

然后再工具测试:Trusted by Mozilla:Yes。然后借台安卓手机访问,嘿,也没有在显示“该证书并非来自可信的授权中心”,原来SSL证书不可信问题就是出现在此。记录本文,希望给大家一些思路,在MT主机CP中设置SSL除了导入证书外,还需要以上这一步。

后补:
再经测试,你在MT后台导入证书时,把yourDomainName.ca-bundle所以内容放进“CA/Chain Certificate”选项中,也相当于上面的这样操作。我建议选择把yourDomainName.ca-bundle所以内容放进“CA/Chain Certificate”选项中。也就是把当初提供给我们的证书AddTrustExternalCARoot.crt、COMODORSAAddTrustCA.crt、COMODORSADomainValidationSecureServerCA.crt证书所有内容汇总后全放进“CA/Chain Certificate”选项中。

https配置CA证书安装教程

下载得到的 www.domain.com.zip 文件,解压获得3个文件夹,分别是Apache、IIS、Nginx 服务器的证书文件,
下面提供了4类服务器证书安装方法的示例:

1. Apache 2.x 证书部署

1.1 获取证书

Apache文件夹内获得证书文件 1_root_bundle.crt,2_www.domain.com_cert.crt 和私钥文件 3_www.domain.com.key,
1_root_bundle.crt 文件包括一段证书代码 “-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”,
2_www.domain.com_cert.crt 文件包括一段证书代码 “-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”,
3_www.domain.com.key 文件包括一段私钥代码“-----BEGIN RSA PRIVATE KEY-----”和“-----END RSA PRIVATE KEY-----”。

1.2 证书安装

编辑Apache根目录下 conf/httpd.conf 文件,
找到 #LoadModule ssl_module modules/mod_ssl.so#Include conf/extra/httpd-ssl.conf,去掉前面的#号注释;
编辑Apache根目录下 conf/extra/httpd-ssl.conf 文件,修改如下内容:

<VirtualHost www.domain.com:443>    DocumentRoot "/var/www/html"    ServerName www.domain.com    SSLEngine on    SSLCertificateFile /usr/local/apache/conf/2_www.domain.com_cert.crt    SSLCertificateKeyFile /usr/local/apache/conf/3_www.domain.com.key    SSLCertificateChainFile /usr/local/apache/conf/1_root_bundle.crt</VirtualHost>

配置完成后,重新启动 Apache 就可以使用https://www.domain.com来访问了。

注:

配置文件参数 说明
SSLEngine on 启用SSL功能
SSLCertificateFile 证书文件
SSLCertificateKeyFile 私钥文件
SSLCertificateChainFile 证书链文件

2. Nginx 证书部署

2.1 获取证书

Nginx文件夹内获得SSL证书文件 1_www.domain.com_bundle.crt 和私钥文件 2_www.domain.com.key,
1_www.domain.com_bundle.crt 文件包括两段证书代码 “-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”,
2_www.domain.com.key 文件包括一段私钥代码“-----BEGIN RSA PRIVATE KEY-----”和“-----END RSA PRIVATE KEY-----”。

2.2 证书安装

将域名 www.domain.com 的证书文件1_www.domain.com_bundle.crt 、私钥文件2_www.domain.com.key保存到同一个目录,例如/usr/local/nginx/conf目录下。
更新Nginx根目录下 conf/nginx.conf 文件如下:

server {        listen 443;        server_name www.domain.com; #填写绑定证书的域名        ssl on;        ssl_certificate 1_www.domain.com_bundle.crt;        ssl_certificate_key 2_www.domain.com.key;        ssl_session_timeout 5m;        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置        ssl_prefer_server_ciphers on;        location / {            root   html; #站点目录            index  index.html index.htm;        }    }

配置完成后,先用bin/nginx –t来测试下配置是否有误,正确无误的话,重启nginx。就可以使 https://www.domain.com 来访问了。

注:

配置文件参数 说明
listen 443 SSL访问端口号为443
ssl on 启用SSL功能
ssl_certificate 证书文件
ssl_certificate_key 私钥文件
ssl_protocols 使用的协议
ssl_ciphers 配置加密套件,写法遵循openssl标准

2.3 使用全站加密,http自动跳转https(可选)

对于用户不知道网站可以进行https访问的情况下,让服务器自动把http的请求重定向到https。
在服务器这边的话配置的话,可以在页面里加js脚本,也可以在后端程序里写重定向,当然也可以在web服务器来实现跳转。Nginx是支持rewrite的(只要在编译的时候没有去掉pcre)
在http的server里增加rewrite ^(.*) https://$host$1 permanent;
这样就可以实现80进来的请求,重定向为https了。

3. IIS 证书部署

3.1 获取证书

IIS文件夹内获得SSL证书文件 www.domain.com.pfx

3.2 证书安装

1、打开IIS服务管理器,点击计算机名称,双击‘服务器证书’


3.2.1

2、双击打开服务器证书后,点击右则的导入


3.2.2

3、选择证书文件,如果输入申请证书时有填写私钥密码需要输入密码,否则输入文件夹中密码文件keystorePass.txt的密码内容,点击确定。参考私钥密码指引

3.2.3

4、点击网站下的站点名称,点击右则的绑定


3.2.4

5、打开网站绑定界面后,点击添加


3.2.5

6、添加网站绑定内容:选择类型为https,端口443和指定对应的SSL证书,点击确定


3.2.6

7、添加完成后,网站绑定界面将会看到刚刚添加的内容


3.2.7

4. Tomcat 证书部署

4.1 获取证书

如果申请证书时有填写私钥密码,下载可获得Tomcat文件夹,其中有密钥库 www.domain.com.jks
如果没有填写私钥密码,证书下载包的Tomcat文件夹中包括密钥库文件www.domain.com.jks 与密钥库密码文件keystorePass.txt
当用户选择粘贴CSR时,不提供Tomcat证书文件的下载,需要用户手动转换格式生成,操作方法如下:

可以通过 Nginx 文件夹内证书文件和私钥文件生成jks格式证书
转换工具:https://www.trustasia.com/tools/cert-converter.htm
使用工具时注意填写 密钥库密码 ,安装证书时配置文件中需要填写。

4.2 证书安装

配置SSL连接器,将www.domain.com.jks文件存放到conf目录下,然后配置同目录下的server.xml文件:

<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"    maxThreads="150" scheme="https" secure="true"    keystoreFile="conf/www.domain.com.jks"    keystorePass="changeit"    clientAuth="false" sslProtocol="TLS" />

注:

配置文件参数 说明
clientAuth 如果设为true,表示Tomcat要求所有的SSL客户出示安全证书,对SSL客户进行身份验证
keystoreFile 指定keystore文件的存放位置,可以指定绝对路径,也可以指定相对于 (Tomcat安装目录)环境变量的相对路径。如果此项没有设定,默认情况下,Tomcat将从当前操作系统用户的用户目录下读取名为 “.keystore”的文件。
keystorePass 密钥库密码,指定keystore的密码。(如果申请证书时有填写私钥密码,密钥库密码即私钥密码,否则填写密钥库密码文件中的密码)
sslProtocol 指定套接字(Socket)使用的加密/解密协议,默认值为TLS

4.3 http自动跳转https的安全配置

到conf目录下的web.xml。在</welcome-file-list>后面,</web-app>,也就是倒数第二段里,加上这样一段

<login-config>    <!-- Authorization setting for SSL -->    <auth-method>CLIENT-CERT</auth-method>    <realm-name>Client Cert Users-only Area</realm-name>    </login-config>    <security-constraint>    <!-- Authorization setting for SSL -->    <web-resource-collection>    <web-resource-name>SSL</web-resource-name>    <url-pattern>/*</url-pattern>    </web-resource-collection>    <user-data-constraint>    <transport-guarantee>CONFIDENTIAL</transport-guarantee>    </user-data-constraint>    </security-constraint>

这步目的是让非ssl的connector跳转到ssl的connector去。所以还需要前往server.xml进行配置:

<Connector port="8080" protocol="HTTP/1.1"    connectionTimeout="20000"    redirectPort="443" />

redirectPort改成ssl的connector的端口443,重启后便会生效。
</article>

使用crt和ca-bundle文件给网站配置ssl证书教程

说明:之前看到namecheap搞的免费换一年Comodo ssl证书活动,就去搞了一年,申请下来的证书文件就ca-bundlecrt文件,习惯用crtkey文件来配置ssl证书的我,就直接无视了ca-bundle文件,估计很多人也会和我一样,于是用crt文件和之前生成的key文件配置ssl后,会发现有的浏览器提示不安全,查了下问题后,发现证书链不完整导致的,感觉不能忽视ca-bundle文件,就胡乱折腾,最后给整好了。这里把方法分享下。

首先需要将颁发的crtca-bundle文件合并成一个新crt文件,登录vps运行命令:

cat xxx.crt xxx.ca-bundle > new.crt  #crt和ca-bundle文件位置填对

然后用新的crt做证书文件,key还是用之前生成的!

配置ssl具体方法可以参考:可以自行百度

以上转自:https://www.jinbo123.com/6016.html
https://blog.csdn.net/veloi/article/details/78551349
https://www.moerats.com/archives/164/

总结:我遇到的问题是nginx443端口加密域名www.wangshuai.tech,但是配置了域名crt和key,像一下360和谷歌访问一切正常。但是手机浏览器和火狐浏览器打开提示不信任证书。我这的做法是把根证书追加到域名证书文件下面,一切不变。其它就不提示不受信任证书问题了。遇到这个问题,找了一堆文章,上面三篇有起到作用,特此粘贴,希望遇到同样问题的道友,可以很方便,谢谢。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,165评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,503评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,295评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,589评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,439评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,342评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,749评论 3 387
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,397评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,700评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,740评论 2 313
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,523评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,364评论 3 314
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,755评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,024评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,297评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,721评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,918评论 2 336

推荐阅读更多精彩内容