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

本文主要是介绍apache证书不受信任_关于浏览器提示证书并非来自可信的授权中心解决办法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

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

583990bb92c6

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放进其中。

583990bb92c6

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 文件,修改如下内容:

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

配置完成后,重新启动 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 获取证书

3.2 证书安装

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

583990bb92c6

3.2.1

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

583990bb92c6

3.2.2

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

583990bb92c6

3.2.3

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

583990bb92c6

3.2.4

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

583990bb92c6

3.2.5

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

583990bb92c6

3.2.6

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

583990bb92c6

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文件:

注:

配置文件参数

说明

clientAuth

如果设为true,表示Tomcat要求所有的SSL客户出示安全证书,对SSL客户进行身份验证

keystoreFile

指定keystore文件的存放位置,可以指定绝对路径,也可以指定相对于 (Tomcat安装目录)环境变量的相对路径。如果此项没有设定,默认情况下,Tomcat将从当前操作系统用户的用户目录下读取名为 “.keystore”的文件。

keystorePass

密钥库密码,指定keystore的密码。(如果申请证书时有填写私钥密码,密钥库密码即私钥密码,否则填写密钥库密码文件中的密码)

sslProtocol

指定套接字(Socket)使用的加密/解密协议,默认值为TLS

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

到conf目录下的web.xml。在后面,,也就是倒数第二段里,加上这样一段

CLIENT-CERTClient Cert Users-only AreaSSL/*CONFIDENTIAL

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

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

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

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

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

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

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

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

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

这篇关于apache证书不受信任_关于浏览器提示证书并非来自可信的授权中心解决办法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/355343

相关文章

Python运行中频繁出现Restart提示的解决办法

《Python运行中频繁出现Restart提示的解决办法》在编程的世界里,遇到各种奇怪的问题是家常便饭,但是,当你的Python程序在运行过程中频繁出现“Restart”提示时,这可能不仅仅是令人头疼... 目录问题描述代码示例无限循环递归调用内存泄漏解决方案1. 检查代码逻辑无限循环递归调用内存泄漏2.

C#TextBox设置提示文本方式(SetHintText)

《C#TextBox设置提示文本方式(SetHintText)》:本文主要介绍C#TextBox设置提示文本方式(SetHintText),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录C#TextBox设置提示文本效果展示核心代码总结C#TextBox设置提示文本效果展示核心代

深入理解Apache Kafka(分布式流处理平台)

《深入理解ApacheKafka(分布式流处理平台)》ApacheKafka作为现代分布式系统中的核心中间件,为构建高吞吐量、低延迟的数据管道提供了强大支持,本文将深入探讨Kafka的核心概念、架构... 目录引言一、Apache Kafka概述1.1 什么是Kafka?1.2 Kafka的核心概念二、Ka

SpringSecurity6.0 如何通过JWTtoken进行认证授权

《SpringSecurity6.0如何通过JWTtoken进行认证授权》:本文主要介绍SpringSecurity6.0通过JWTtoken进行认证授权的过程,本文给大家介绍的非常详细,感兴趣... 目录项目依赖认证UserDetailService生成JWT token权限控制小结之前写过一个文章,从S

Go标准库常见错误分析和解决办法

《Go标准库常见错误分析和解决办法》Go语言的标准库为开发者提供了丰富且高效的工具,涵盖了从网络编程到文件操作等各个方面,然而,标准库虽好,使用不当却可能适得其反,正所谓工欲善其事,必先利其器,本文将... 目录1. 使用了错误的time.Duration2. time.After导致的内存泄漏3. jsO

springboot循环依赖问题案例代码及解决办法

《springboot循环依赖问题案例代码及解决办法》在SpringBoot中,如果两个或多个Bean之间存在循环依赖(即BeanA依赖BeanB,而BeanB又依赖BeanA),会导致Spring的... 目录1. 什么是循环依赖?2. 循环依赖的场景案例3. 解决循环依赖的常见方法方法 1:使用 @La

MySQL错误代码2058和2059的解决办法

《MySQL错误代码2058和2059的解决办法》:本文主要介绍MySQL错误代码2058和2059的解决办法,2058和2059的错误码核心都是你用的客户端工具和mysql版本的密码插件不匹配,... 目录1. 前置理解2.报错现象3.解决办法(敲重点!!!)1. php前置理解2058和2059的错误

Docker镜像pull失败两种解决办法小结

《Docker镜像pull失败两种解决办法小结》有时候我们在拉取Docker镜像的过程中会遇到一些问题,:本文主要介绍Docker镜像pull失败两种解决办法的相关资料,文中通过代码介绍的非常详细... 目录docker 镜像 pull 失败解决办法1DrQwWCocker 镜像 pull 失败解决方法2总

mss32.dll文件丢失怎么办? 电脑提示mss32.dll丢失的多种修复方法

《mss32.dll文件丢失怎么办?电脑提示mss32.dll丢失的多种修复方法》最近,很多电脑用户可能遇到了mss32.dll文件丢失的问题,导致一些应用程序无法正常启动,那么,如何修复这个问题呢... 在电脑常年累月的使用过程中,偶尔会遇到一些问题令人头疼。像是某个程序尝试运行时,系统突然弹出一个错误提

电脑提示找不到openal32.dll文件怎么办? openal32.dll丢失完美修复方法

《电脑提示找不到openal32.dll文件怎么办?openal32.dll丢失完美修复方法》openal32.dll是一种重要的系统文件,当它丢失时,会给我们的电脑带来很大的困扰,很多人都曾经遇到... 在使用电脑过程中,我们常常会遇到一些.dll文件丢失的问题,而openal32.dll的丢失是其中比较