当我们去检测SSL的时候 https://www.ssllabs.com/ssltest/index.html 去这个网站检测 会出现

This server's certificate chain is incomplete. Grade capped to B.

这意味着服务器将缺少中间证书的证书链发送到受信任的根,因此您的客户端无法构建信任链.大多数桌面浏览器通过尝试从其他地方获取缺少的证书来解决此问题,但在这种情况下,正常的TLS库将失败.您需要明确地将缺失的链证书添加为受信任以解决此问题

其实 这个检测跟以下的curl命令出现的错误 是一样的

curl -I -A “Baiduspider” https://***.com 出现以下错误提示

curl: (60) Peer's Certificate issuer is not recognized.

More deTails here: http://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle" of Certificate Authority (CA) public keys (CA certs). If the default bundle file isn't adequate, you can specify an alternate file using the --cacert option.

If this HTTPS server uses a certificate signed by a CA represented in the bundle, the certificate verification probably failed due to a problem with the certificate (it might be expired, or the name might not match the domain name in the URL).

If you'd like to turn off curl's verification of the certificate, use the -k (or --insecure) option.

我们加个 -K 虽然可以解决 但不是根本解决

这个就是缺少中间证书链  跟检测将为B是一样的

解决办法网站查了很多 也叨叨了很多 真正解决问题的不多!

证书链下载/证书链修复 网站有三个!

https://myssl.com/chain_download.html

https://www.myssl.cn/tools/downloadchain.html

https://certificatechain.io/

实际检测 中间的好用 其他没测试 自己测

将你的PEM/CRT证书

类似

-----BEGIN CERTIFICATE-----
VVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UE
ChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVz
ZXJ0cnVzdC5jb20xKzApBgNVBAMTIlVUTi1VU0VSRmlyc3QtTmV0d29yayBBCHBs
NzExMDY5NDAxMTAvBgNVBAsTKFNlZSB3d3cucmFwaWRzc2wuY29tL3Jlc291cmNl
cy9jcHMgKGMpMDcxLzAtBgNVBAsTJkRvbWFpbiBDb250cm9sIFZhbGlkYXRlZCAt
XCKBNQNAzybtImcaJjXQsihqkuohYcWh2QuijBgXZC+o9IUl+2SNhw6OYXSJTuuD
09VFQFAaUC41rLcU9BDh6w7xmGnZJzZ0H8jm2E9NA6s6DId7qQ+f/YdkKePRR+Dw
p9GnjmheMvhqs0DFj+tCFhHX3PK8WGrYBYG8ejsgo8uKAKTkishpOMyTs4CmTlDX
chn5QGRjpq2FlIqqlTwLdMGpkeUSZjuAFblLhTQs158Q5VHC5SH+3DvJW+g7/CpT
jBhiTnfNyD19rUmrWZ2dmic50B32BAiIO9OepmVvI8nA1TBvNFfhX75cOCk=
-----END CERTIFICATE-----

这种格式 粘贴到网站 生成中间证书链

然后复制 粘贴到你目前证书的后面 不能有空格

BT宝塔用户 可以直接复制粘贴到pem证书后面 注意不是覆盖 是添加

基本上 这样就解决了 还有一个更简单的办法就是

 

如果你感觉这样操作纯属蛋疼 懒的折腾 请用下面软件图文化神技能解决

下载myssl网站的一个证书管理工具

https://keyMANAger.org/ 官网下载

安装这个软件 简单折腾一下 设置个密码 其实没用

然后

点击证书扫描  输入你的玉米! 开始扫描!

会出现证书 下载!

在然后 到证书管理里面找到自己域名 点后面三个点 导出证书

 

这时候导出的证书 是自动添加了 中间证书链的

你在用记事本打开 复制里面证书信息 到宝塔里面替换

或者文件直接替换现有证书 即可解决问题

 

纯手打原创  转载请注明

问题解决后 crul 命令 就没有报错了 直接200状态

SSL检测直接到A  如果开启HSTS 直接A+

 

 

其他工具

工具网站

  • https://github.com/spatie/ssl-certificate-chain-resolver github项目地址
  • https://certificatechain.io 用于补全中间证书
  • https://www.ssllabs.com 用于检测网站的HTTPS配置
  • 证书链下载/证书链修复 网站有三个!

    https://myssl.com/chain_download.html

    https://www.myssl.cn/tools/downloadchain.html

    https://certificatechain.io/

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。