网站搭建 -- 部署Https 证书 缺少 Root CA Certificate

news/2024/5/20 23:01:36/文章来源:https://blog.csdn.net/yetugeng/article/details/96596437

测试网站

我们在搭建web站点时,为了安全,现在都要使用SSL证书。

一个好用的测试网站可以检测你的SSL配置是否正确。

https://www.geocerts.com/ssl-checker

该网站可以自定义检测的端口(大部分检测网站都只能使用默认端口443)

 检测结果如下

可以看到最后一栏,Certificate Chain Complete  检测的是证书链是否完整这里又警告。

正确配置的结果是这样的:

一般情况下,若是web站点配置的证书链不完整,大部分浏览器访问都没有问题。

但是有些浏览器会有警告提示,需要手动点击确认,该浏览器在后续访问站点的时候才不会告警。但是对于一些网站之间的调用,如web小游戏,出现这个问题就会导致游戏无法正常加载,因为需要手动确认,而这个确认界面有时候又没有显示出来。

比如我的站点是nginx放置前端资源,glassfish部署后端程序,所以在这两个地方都需要正确安装包含完整根证书的证书链。

安装证书

现在某宝上购买泛域名的证书十分方便,卖家发给的文件包含几种web站点的配,他们已经分好类,十分方便。

[root@localhost ssl]# tree .
.
├── Apache
│   ├── CAChains.crt
│   ├── START-example-com.crt
│   └── START-example-com.key
├── CDN
│   ├── [1]START-example-com.crt
│   ├── [2]CAChains.crt
│   └── START-example-com.key
├── IIS
│   ├── CAChains.crt
│   └── START-example-com.pfx
└── Nginx├── START-example-com.key└── START-example-com.pem

其中

  • CACahins.crt是证书链(即除开域名证书的所有上级证书,包括根证书和中间授权商的证书。)
  • START-example-com.crt是被授权域名*.example.com的域名证书。
  • START-example-com.key是私钥。

 

这些文件大部分以文本形式存在:

Apache/CAChains.crt

-----BEGIN CERTIFICATE-----
MIIGEzCCA/ugAwIBAgIQfVtRJrR2uhHbdBYLvFMNpzANBgkqhkiG9w0BAQwFADCB
...
00u/I5sUKUErmgQfky3xxzlIPK1aEn8=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFdzCCBF+gAwIBAgIQE+oocFv07O0MNmMJgGFDNjANBgkqhkiG9w0BAQwFADBv
...
0fKtirOMxyHNwu8=
-----END CERTIFICATE-----

Apache/START-aiwingaming-com.crt

-----BEGIN CERTIFICATE-----
MIIGBDCCBOygAwIBAgIQSI+LGG8Px7WUn1ZuXNahwjANBgkqhkiG9w0BAQsFADCB
...
nKdXTAI78B8=
-----END CERTIFICATE-----

Apache/START-example-com.key

-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCyHYcExMhnxL2q
...
6RwyQyYTO+KceoYYYA8aKvdX
-----END PRIVATE KEY-----

CDN/[1]START-example-com.crt

-----BEGIN CERTIFICATE-----
MIIGBDCCBOygAwIBAgIQSI+LGG8Px7WUn1ZuXNahwjANBgkqhkiG9w0BAQsFADCB
...
nKdXTAI78B8=
-----END CERTIFICATE-----

CDN/[2]CAChains.crt

-----BEGIN CERTIFICATE-----
MIIGEzCCA/ugAwIBAgIQfVtRJrR2uhHbdBYLvFMNpzANBgkqhkiG9w0BAQwFADCB
...
00u/I5sUKUErmgQfky3xxzlIPK1aEn8=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFdzCCBF+gAwIBAgIQE+oocFv07O0MNmMJgGFDNjANBgkqhkiG9w0BAQwFADBv
...
0fKtirOMxyHNwu8=
-----END CERTIFICATE-----

CDN/START-example-com.key

-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCyHYcExMhnxL2q
...
6RwyQyYTO+KceoYYYA8aKvdX
-----END PRIVATE KEY-----

IIS/CAChains.crt

-----BEGIN CERTIFICATE-----
MIIGEzCCA/ugAwIBAgIQfVtRJrR2uhHbdBYLvFMNpzANBgkqhkiG9w0BAQwFADCB
...
00u/I5sUKUErmgQfky3xxzlIPK1aEn8=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFdzCCBF+gAwIBAgIQE+oocFv07O0MNmMJgGFDNjANBgkqhkiG9w0BAQwFADBv
...
0fKtirOMxyHNwu8=
-----END CERTIFICATE-----

IIS/START-example-com.pfx

pfx不是文本文件就不显示了,一般会设置密码的,且卖家会告诉你。

Nginx/START-example-com.key

-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCyHYcExMhnxL2q
...
6RwyQyYTO+KceoYYYA8aKvdX
-----END PRIVATE KEY-----

Nginx/START-example-com.pem

-----BEGIN CERTIFICATE-----
MIIGBDCCBOygAwIBAgIQSI+LGG8Px7WUn1ZuXNahwjANBgkqhkiG9w0BAQsFADCB
...
nKdXTAI78B8=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIGEzCCA/ugAwIBAgIQfVtRJrR2uhHbdBYLvFMNpzANBgkqhkiG9w0BAQwFADCB
...
00u/I5sUKUErmgQfky3xxzlIPK1aEn8=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFdzCCBF+gAwIBAgIQE+oocFv07O0MNmMJgGFDNjANBgkqhkiG9w0BAQwFADBv
...
0fKtirOMxyHNwu8=
-----END CERTIFICATE-----

由上可以看到:

  • key都是一样的;
  • CAChains也都是一样的;
  • Apache/START-example-com.crt 和CDN/[1]START-example-com.crt是一样的,
  • 而START-example-com.pem只不过是把CAChains.crt和START-example-com.crt的内容合并起来。

其实后缀crt,pem都不重要,主要是看内容。

有些人喜欢把CAChains和域名证书合起来命名为bundle之类的。

 

对于nginx

一般是这样配置的,关键部分的nginx.conf内容如下

    server {listen 443 ssl;server_name test.example.com;ssl_certificate example.com.crt;ssl_certificate_key example.com.key;ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers         HIGH:!aNULL:!MD5;location / {root   /opt/Resources;index  index.html index.htm;}}

然后吧crt和key文件放在nginx.conf同目录下即可,比较方便。

对于glassfish

因为卖家没有整理对应的文件,只有自己来弄下。

在glassfish中,新建域之后,其目录config下的domain.xml是关于该域的主要配置文件。可以看到

keyStore 和 trustStore 分别对应 config目录下的keystore.jks 和 cacerts.jks 文件。

 

<jvm-options>-Djavax.net.ssl.keyStore=${com.sun.aas.instanceRoot}/config/keystore.jks</jvm-options>
<jvm-options>-Djavax.net.ssl.trustStore=${com.sun.aas.instanceRoot}/config/cacerts.jks</jvm-options>

 

如果给你服务器签名的CA的根证书没有默认包含在你的 trust store 里面,你必须手动将根证书( root certificate)安装到 trust store里面。

1.导入一个根证书

执行如下命令

keytool  -import  -trustcacerts \-alias certAlias  \-file certFile  \-keystore trustStoreFile
  • certFile 就是crt证书,包含完整证书链的文件(如nginx的pem,或者自己合并的bundle文件)。
  • certAlias 就是一个代表该证书的别名(自己定义),glassfish有个别名是叫 s1as 就是常用来定义自己添加的证书。
  • trustStoreFile  在glassfish里面就是 yourdomainname/config/cacerts.jks 文件,

2.执行该命令时,提示符会询问你是否相信这个证书,你回答yes即可。

Trust this certificate? [no]:  yes
Certificate was added to keystore

3.确认domain.xml配置文件里有如下配置

<jvm-options>-Djavax.net.ssl.trustStore=trustStoreFile</jvm-options>

 

 

注:

我犯的错误就是在配置nginx和glassfish时,只用了域名证书,没有用完整的证书链(bundle),才出现了前面证书链不完整的错误。其实,刚开始接触证书,对于有些概念不是很清楚。有空可以看看一些相关书籍,不用都懂,看了大部分内容就可以了。

《HTTPS权威指南 在服务器和WEB应用上部署SSL TLS和PKL》

《OpenSSL Cookbook-OpenSSL攻略-中文版》

《Openssl编程-赵春平-中文版》

《CDN技术详解》

 

参考:

Oracle GlassFish Message Queue 4.4.2 Administration Guide

https://docs.oracle.com/cd/E19798-01/821-1794/aeoqc/index.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_786749.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

揭秘DDoS黑市:50块钱就能击瘫一家网站

前两天&#xff0c;阿里云在微博上发布一则声明&#xff0c;称12月20-21日间&#xff0c;部署在阿里云上的某知名游戏公司&#xff0c;遭遇了全球互联网史上最大的一次DDoS攻击。 DDoS是一种在互联网地下非常常见的攻击方式&#xff0c;可以称作黑客入门的基础技巧。但要做到像…

WordPress开发之创建WordPress会员网站(一)

问题 Wordpress是世界范围内广泛推荐的网站开发平台&#xff0c;尽管创建一个基于WordPress的基础型博客网站是一个一小时左右就能完成的工作&#xff0c;但是&#xff0c;要想把这个网站进一步完善&#xff0c;特别是把WordPress网站修改成一个真正意义上的中小型电子商务网站…

HTML5初学者福利!11个在线学习网站推荐

2019独角兽企业重金招聘Python工程师标准>>> HTML5的强大及流行趋势&#xff0c;让更多的人想要系统的对它进行学习。而大多数人获取HTML5知识的重要途径都是网络&#xff0c;不过面对五花八门的搜索结果&#xff0c;是不是觉得摸不着头脑&#xff0c;无法抉择&…

Scrapy和Django实现蚌埠医学院手机新闻网站制作

最终效果&#xff08;不看效果就讲过程都是耍流氓&#xff09;&#xff1a; 实现过程如下: 框架&#xff1a; Scrapy&#xff1a;数据采集Django&#xff1a;数据呈现目标网站&#xff1a;蚌埠医学院 学院新闻列表:http://www.bbmc.edu.cn/index.php/view/viewcate/0/ 第一步&a…

收集喜欢的网站元素

1、https://letters-inc.jp/2、https://clarity.io/。。。

高性能网站建设进阶指南:Web开发者性能优化最佳实践

高性能网站建设进阶指南&#xff1a;Web开发者性能优化最佳实践 基本信息 作者&#xff1a; 口碑网前端团队 出版社&#xff1a;电子工业出版社 ISBN&#xff1a;9787121105449 上架时间&#xff1a;2010-4-9 出版日期&#xff1a;2010 年4月 开本&#xff1a;16开 其他详细…

WordPress 捐赠插件漏洞,导致网站遭受零日攻击

开发四年只会写业务代码&#xff0c;分布式高并发都不会还做程序员&#xff1f; 使用“Total Donations”插件的 WordPress 网站&#xff0c;Defiant 建议网站管理员从他们的服务器中删除该插件&#xff0c;防止黑客利用其代码漏洞攻击网站。过去一周&#xff0c;来自 Defian…

分享一些好用的网站

前言 这两年收藏了不少网站&#xff0c;特地整理一下&#xff0c;把一些大家都可能用得上的分享出来&#xff0c;希望能对你有用。 考虑到有一些网站大多数人都知道&#xff0c;所以我就不列出来了。 我把这些网站分为了几大类&#xff1a; 工具类素材类社区类工具类 1、start.…

阿里云 - 免费 CA 证书申请 + Nginx 实现网站https部署 + http强制跳转https

1&#xff0c;进入阿里云&#xff0c;找到导航栏下安全下有个CA证书服务&#xff1b; 2&#xff0c;点进去之后点击立即购买&#xff1b; 3&#xff0c;点进来默认是看不到免费的&#xff0c;点击Symantec&#xff1b; 4&#xff0c;然后点击增强型&#xff1b; 5&#xff…

程序员网站推荐

希望你能遇到更好的网站。 1.git学习 猴子都能懂的GIT入门 https://backlog.com/git-tutorial/cn/stepup/stepup1_1.html 2.问答平台 stackoverflow https://stackoverflow.com/ n.遇到了再添加 本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可…

6个超给力网站资源共享 一分钟吊起你的兴趣

超给力的网站资源分享给你们&#xff0c;娱乐、生活、学习应有尽有&#xff0c;赶紧来看看吧&#xff01; 千千音乐&#xff1a;http://music.taihe.com/songlist千千音乐是中国音乐门户之一,为你提供海量正版高品质音乐,权威的音乐榜单,快速的新歌速递,契合你的主题电台,人性化…

51CTO网站博客更新声明

51CTO博客自成立以来&#xff0c;受到网友广泛关注&#xff0c;为了能够提供更好的服务&#xff0c;51CTO网站决定对博客栏目进行大幅度改版。 截止到6月25日&#xff0c;网站后台管理界面风格已经调整完成&#xff0c;此目的是为了能让广大使用者更方便地使用我们的博客产品。…

学习前端的好处,网站文章复制不了?别扯.

很多时候我们在网上浏览文章或查看资料的时候&#xff0c;看到写的非常好的句子想要复制粘贴保存一下&#xff0c;这是拖动鼠标&#xff0c;发现“选不中&#xff0c;复制不了”&#xff0c;哎&#xff0c;这时候咱们前端高能出手&#xff0c;这都不是事儿&#xff01;很简单&a…

python爬取证券之星网站

周末无聊&#xff0c;找点乐子。。。#coding:utf-8 import requests from bs4 import BeautifulSoup import random import time#抓取所需内容 user_agent ["Mozilla/5.0 (Windows NT 10.0; WOW64)", Mozilla/5.0 (Windows NT 6.3; WOW64),Mozilla/5.0 (Windows NT …

seo我告诉你

seo我告诉你&#xff0c;这回seo真的告诉你百度云链接 链接&#xff1a;http://pan.baidu.com/s/1qYpM9y8 密码&#xff1a;mad6 seo优化教程&#xff1a;

介绍MyBatis代码生成网站(六) --- SQL方法的选择

为什么80%的码农都做不了架构师&#xff1f;>>> 一.简介 网址: http://www.fwjava.com 操作流程: 详见“ 介绍MyBatis代码生成网站(一) --- 基本操作 ” 需求描述: 在实际的应用开发中 , 我们希望在14个大类26个SQL方法中 , 选择生成自己想要的几个特定方法. 那么&…

python多页网站目录_Python爬取网址中多个页面的信息

通过上一篇博客了解到爬取数据的操作&#xff0c;但对于存在多个页面的网址来说&#xff0c;使用上一篇博客中的代码爬取下来的资料并不完整。接下来就是讲解该如何爬取之后的页面信息。 一、审查元素 鼠标移至页码处右键&#xff0c;选择检查元素接着屏幕下方就会出现对应的ht…

给自己的网站加入智能聊天功能

引言 现在突然发现有很多 QQ 群都开启了群机器人的功能&#xff0c;其中有两个角色&#xff0c;他们分别是&#xff1a;Baby Q 和 QQ 小冰。在 Q 群中&#xff0c;你可以对他们进行任意程度的调戏&#xff0c;不过&#xff0c;遗憾的是鱼和熊掌不可得兼&#xff0c;一个群只能进…

用PHP做采集功能网站的思路

2019独角兽企业重金招聘Python工程师标准>>> 1、指定一个列表页&#xff0c;用curl或file_get_contents将页面读取进来&#xff1b; 2、用正则或者XML分析DOM&#xff0c;获取到列表中文章的超链接&#xff0c;将其保存为一个任务数组&#xff1b; 3、遍历数组&…

刷网站关键字_「李知恩死亡」刷爆韩网吓坏IU粉丝!Luna被指蹭热度,妹妹大爆料...

一夜之间「李知恩」、「李知恩死亡」关键字刷爆韩国各大网站&#xff0c;让诸多IU粉丝心碎&#xff0c;众人仔细查证之后才发现是个大乌龙&#xff0c;这才松了一口气。事情的起因是3月3日晚播出的纪录片《人真好》&#xff0c;作为纪录片主人公的Luna提到了「李知恩이지은」去…