这个问题我看了很多文章,有的改浏览器配置,有的修改系统钥匙串等等。反正在我的Mac Book Pro14上没有解决问题。经过这段时间有一阵没有一阵的了解,大概找到了根本原因

MacOS Chrome 拒绝自签名证书,原因是自签名证书一般没有中间证书,也就是不具备证书链。网上大多教程都是告诉用户从创建根证书、证书请求、签名最终证书的一整套简要流程,高级一点的可能要求配置OpenSSL Config。

我把我机器的情况简要概述下:

  • OS:macOS Monterey 12.3.1
  • CPU:Apple M1 Pro
  • Chrome:100.0.4951.41(arm64)

本文不使用命令行方式,主要利用了一个国外软件XCA完成证书链的建设。下载地址如下:

第一步:新建数据库

mac查看证书公钥_macos


第二步:新建模板

这里面实际上要建立三个模板,当然也可以两个。分别是RootCa、CenterCa、Server

mac查看证书公钥_SSL_02


选择默认的CA模板CA模板配置:基础部分修改

mac查看证书公钥_chrome_03


扩展部分配置:

mac查看证书公钥_chrome_04


密钥用法配置:

mac查看证书公钥_chrome_05


本着搞不懂就全拉上的原则,请全选。反正根证书。省的以后再折腾Netscape扩展配置:

mac查看证书公钥_SSL_06


同上,管他三七二十一,全选。

然后,OK生成配置。

第三步:创建中间证书模板,流程同上第二步。(不想打字,请海涵!)

第四步:创建最终证书模板

mac查看证书公钥_chrome_07


主体配置:

mac查看证书公钥_SSL_08


commonName 就不要填了,后面还得删。挺麻烦的

扩展配置:

mac查看证书公钥_mac查看证书公钥_09


建议是2年,因为Chrome 对超过三年的最终证书有歧视,会有报错不安全。

密钥用法:不用改

NetScape扩展:

mac查看证书公钥_https_10


OK,这一步就搞定了。

创建证书环节-根证书部分

第一步:创建证书

mac查看证书公钥_https_11


选择完模板后,选择应用模板所有信息。

第二步:主体部分配置修改

mac查看证书公钥_https_12


修改内部名称:RootCa

点击右下角生成新秘钥,直接点创建

第三步:直接点OK生成证书

mac查看证书公钥_https_13

创建证书环节-中间证书部分

第一步:创建证书

mac查看证书公钥_mac查看证书公钥_14


签名这里就得选择刚刚的根证书,然后选择模板并应用模板所有信息第二步:主体部分配置修改

mac查看证书公钥_mac查看证书公钥_15


修改内部名称:CenterCa

点击右下角生成新秘钥,直接点创建第三步:扩展部分配置修改

mac查看证书公钥_https_16


我这里是把路径长度给删了,反正也没啥问题。

点击OK 生成中间证书,结果如下:

mac查看证书公钥_mac查看证书公钥_17

创建证书环节-最终证书部分

第一步:右键点击中间证书,创建

mac查看证书公钥_macos_18


mac查看证书公钥_SSL_19


注意选择模板和签名证书是中间证书而不是根证书!!!!第二步:主体部分配置

mac查看证书公钥_chrome_20


第三步:扩展部分配置

mac查看证书公钥_macos_21

第四步:点击OK!生成证书

完成应用服务

所有证书私钥都可以在菜单页中找到并导出:

mac查看证书公钥_chrome_22


证书的导出也是在菜单页中右键导出即可。一般SSL服务器建议使用证书链PEM导出上传。

mac查看证书公钥_chrome_23

导入操作系统根证书【MAC/WINDOWS】

由于这篇文章我是在Windows工作站上写得,我就懒得截图了,简单描述下

mac查看证书公钥_mac查看证书公钥_24

MAC系统把钥匙串打开,解锁系统,然后把RootCa证书导入进去并全部信任。重启浏览器即可不在有红色的不安全提示!
Windows双击CRT文件,直接把它导入到受信任的根证书机构。重启浏览器即可。