解决 Nginx Let's Encrypt HTTPS 证书 错误: 服务器缺少中间证书

简介: 解决 Nginx Let's Encrypt HTTPS 证书 错误: 服务器缺少中间证书

前言

期初是由于在ios系统出现https连接ssl握手时间过长

经过调查有网友说是ssl中间证书缺失

时间长 和 中间证书缺失 这两点是否存在关联目前还有待考证

不过目前发现

NginxLet's Encrypt 证书的确存在中间证书缺失问题

本文介绍如何解决这一问题

这里证书用的是 Let's Encrypt 通配符证书

服务端 Nginx 1.16.0

调查

首先检查 是否存在这一问题

检测地址:

www.myssl.cn/tools/check…

检测结果:

01ebd755782e4c909dad0843d3544acf.jpeg

Nginx相关配置:

  1. server {
  2. listen 443 ssl http2 default_server;
  3. server_name zzzmh.cn;
  4. ssl_certificate /root/ssl/fullchain.pem;
  5. ssl_certificate_key /root/ssl/privkey.pem;
  6. ssl_trusted_certificate /root/ssl/chain.pem;

  7. ...
  8. }

关键问题是在 fullchain.pem

根据调查 Nginx 不像是 Apache 有专门的参数配置中间证书

Nginx 需要全部配置在 fullchain.pem

顾正确的格式是分为三段

分别代表 服务器层 中间层 root层

  1. -----BEGIN CERTIFICATE-----
  2. ...
  3. -----END CERTIFICATE-----
  4. -----BEGIN CERTIFICATE-----
  5. ...
  6. -----END CERTIFICATE-----
  7. -----BEGIN CERTIFICATE-----
  8. ...
  9. -----END CERTIFICATE-----

而实际上一般 Let's Encrypt 生成的证书

fullchain.pem 默认都是两段

  1. -----BEGIN CERTIFICATE-----
  2. ...
  3. -----END CERTIFICATE-----
  4. -----BEGIN CERTIFICATE-----
  5. ...
  6. -----END CERTIFICATE-----

解决

其实具体缺失中间证书是不是一个问题,

有什么后果,都尚未可知。

只是抱着能解决就解决的心态去调查解决的。

首先先找到

Let's Encrypt 生成出证书的4个文件

  1. cert.pem
  2. chain.pem
  3. fullchain.pem
  4. privkey.pem

cert.pem 内容复制到这个地址解析

www.myssl.cn/tools/downl…

解析成功可以获得2个下载按钮

使用 [点击下载中间证书文件]

将下载到的文件中的 内容 复制到

fullchain.pem两段内容的中间 ,保存即可。

(需要注意 fullchain.pem 格式要求极为严格 不能存在空行 空格等)

最后重启nginx 问题解决

  1. # 测试配置是否正常
  2. nginx -t
  3. # 重新加载配置文件
  4. nginx -s reload

再次去到一开始检测的网址

检测结果:

01ebd755782e4c909dad0843d3544acf.jpeg

END

目录
相关文章
|
安全 网络协议 API
Docker搭建Let's Encrypt并连接阿里云自动签发https证书
Docker搭建Let's Encrypt并连接阿里云自动签发https证书
Docker搭建Let's Encrypt并连接阿里云自动签发https证书
|
网络协议 应用服务中间件 网络安全
|
安全 应用服务中间件 网络安全
免费TLS--Let's Encrypt 使用说明
免费TLS--Let's Encrypt 使用说明
|
域名解析 存储 Rust
使用let's encrypt申请免费的SSL证书
使用let's encrypt申请免费的SSL证书
17282 2
|
应用服务中间件 网络安全 nginx
轻松上手Nginx Proxy Manager:安装、配置与实战
Nginx Proxy Manager (NPM) 是一款基于 Nginx 的反向代理管理工具,提供直观的 Web 界面,方便用户配置和管理反向代理、SSL 证书等。本文档介绍了 NPM 的安装步骤,包括 Docker 和 Docker Compose 的安装、Docker Compose 文件的创建与配置、启动服务、访问 Web 管理界面、基本使用方法以及如何申请和配置 SSL 证书,帮助用户快速上手 NPM。
16046 1
|
Linux Apache
Linux【环境部署 02】yum源镜像下载+挂载镜像+本地yum源配置+局域网yum源服务搭建+局域网yum源使用(一篇学会离线yum源配置)
Linux【环境部署 02】yum源镜像下载+挂载镜像+本地yum源配置+局域网yum源服务搭建+局域网yum源使用(一篇学会离线yum源配置)
9642 0
|
云栖大会 云计算
云栖大会·广东分会|FEC筷云股份引领产业互联网未来
11月22日,2017云栖大会·广东分会在广州香格里拉大酒店顺利召开。峰会现场,大咖齐聚,场面热烈。峰会期间,阿里云联合多家合作伙伴参加云市场新品发布环节。
2911 0
|
网络安全 开发工具 git
|
网络协议 应用服务中间件 网络安全
阿里云环境中TLS/SSL握手失败的场景分析
TLS/SSL握手是一个相对复杂的过程,在阿里云环境中结合产品,安全等特性,可能会让TLS/SSL握手过程的不定性更多。本文来总结下各种握手失败的场景。
阿里云环境中TLS/SSL握手失败的场景分析

热门文章

最新文章