Chrome NET::ERR_CERT_COMMON_NAME_INVALID问题解决方案

背景

上集成测试环境中的spring boot 项目server 启动了ssl协议, 同时正确在Chrome浏览器配置好了自签名证书cer文件. 但是当前端调用后端https接口时报错Chrome NET::ERR_CERT_COMMON_NAME_INVALID. 一般纯浏览器访问,可能大家就是直接点击下面的unsafe链接了, 但是前端是通过ajax call访问后端的api, 因此不可能出现点击unsafe链接的行为, 所以这个问题必须要修复. 本文罗列了出现此问题的原因以及修复的最快捷方法.

原因

签名证书里面缺乏了SubjectAltName 这个字段. chrome 比fixfox 以及 safari对证书的安全性要求更高. 所以解决此问题的本质就是要在证书里面添加这个字段.

最快捷方法: KeyStore explorer工具

网上有很多讲这个问题修复的方案. 基本就是 openssl 命令行生成私钥key文件, 生成请求签名的csr文件, 自己写一个签名的conf文件, 然后用命令行生成证书cer文件. 再将key文件和cer文件生成服务器需要的keystore(.p12)文件.
这个流程里面涉及的concept以及命令行指令比较多. 其实最佳的解决方案还是使用GUi软件来解决此问题.

做java后端开发的人应该熟悉这个KeyStore explorer, 它是一款GUI软件让开发者在生成秘钥库的时候免去了命令行操作, 用它生成的秘 钥库文件(本例中是test.p12的文件)放置于项目resources 目录下, 然后配置相应的ssl项就可以宝成程序支持ssl协议. 配置如下:

server:
  port: 433
  ssl:
    enabled: true
    key-store-type: PKCS12
    key-store: classpath:test.p12
    key-store-password: 123
    key-alias: test

其中的test.p12文件就是使用KeyStore Explorer工具生成.
且给前端浏览器的cer证书文件, 也可以从这个工具里面导出.

在这里插入图片描述

export 按钮就是导出cer证书文件, 用于安装在chrome浏览器.
回到问题的本质, 证书里面缺少SubjectAltName, 这是因为在生成秘钥库文件的时候, 没有将subjectAltName作为 extension 项加入到秘钥库中.
在这里插入图片描述
添加此扩展项, 在DNS name 填写域名,
ip填写ip地址

在这里插入图片描述
生成秘钥对, 保存秘钥库文件, 再导出cer证书安装于浏览器.
在浏览器端验证, 发现extension增加了subjectAltName字段内容, 方法生效.

在这里插入图片描述

关于如何在chrome里面导入自签名证书, 以及让证书被信任, 网上有很多教程,此处就不再赘述.

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 当出现net::ERR_CERT_COMMON_NAME_INVALID错误时,通常是因为证书中缺少SubjectAltName字段。这个字段可以通过在生成证书时添加备用名称(subjectAltName)扩展字段来解决。你可以使用openssl命令来添加subjectAltName扩展。首先创建一个名为ext.ini的文件,然后在文件中填入以下内容: ``` basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment subjectAltName = @alt_names \[alt_names\] DNS.1 = *.dyxmq.cn DNS.2 = *.maqian.xin DNS.3 = *.maqian.io DNS.4 = *.maqian.co DNS.5 = *.maqian.cn ``` 在生成证书时,使用这个ext.ini文件来添加subjectAltName扩展字段。这样就可以解决net::ERR_CERT_COMMON_NAME_INVALID错误了。\[1\]\[3\] #### 引用[.reference_title] - *1* [HTTPS调试中自签名证书错误ERR_CERT_COMMON_NAME_INVALID的解决方法](https://blog.csdn.net/jiuaiwo1314/article/details/114241152)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Chrome NET::ERR_CERT_COMMON_NAME_INVALID问题解决方案](https://blog.csdn.net/Allocator/article/details/122054311)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值