怎么让 chrome 信任自签名证书(亲测有效)

https本地自签名证书添加到信任证书访问

1、背景

本文适用于基于https(http+ssl)的网站通信、本地调试等,上线是请寻找免费 ssl证书申请。

本地调试过程中,一些特殊的场景需要我使用http+ssl通信,比如在Chrome中使用客户端麦克风。

笔者起初使用以下一些命令,在linux、windows进行自签名,但是没能得到Chrome的信任,本地Chrome版本76.0

1. 使用openssl生成密钥privkey.pem:
openssl genrsa -out D:\develop\nginx-1.14.2\conf\privkey2.key 1024/2038
证书信息可以随便填或者留空,只有Common Name要根据你的域名填写。
2. 使用密钥生成证书server.pem:
openssl req -new -x509 -key D:\develop\nginx-1.14.2\conf\privkey2.key -out D:\develop\nginx-1.14.2\conf\server2.pem -days 365

 

典型的症状就是报错:

1、ERR_CERT_AUTHORITY_INVALID

2、Subject Alternative Name missing

如下图:

后来在网上一篇文章《怎么让 chrome 信任自签名的 localhost 证书啊》找到了一些原因:

 

高版本的Chrome需要验证SAN

1. 首先要看你的 chrome 报的自签名证书是什么问题(不同错误提示,有不同的解决方法)
2. 要看你的 chrome 的版本号,从 58 版本开始,自签证书就只认 SAN 不认 CommonName 了
3. 自签证书里面设置的 SAN 是 ip 还是域名,目前 chrome 会认域名的,本地测试,建议改 host 来测

使用了mkcert生成证书,响应的工具需要到github下载,https://github.com/FiloSottile/mkcert/releases

下载 mkcert-vx.y.z-windows-amd64.exe

起初使用的命令如下

mkcert-v1.4.1-windows-amd64.exe www.aaa.com

同时也配置了本地dns(c:\windows\system32\drivers\etc\hosts)文件

172.16.3.50    www.aaa.com

然后执行

mkcert-v1.4.1-windows-amd64.exe -install

结果无效,Chrome还是报错。

正确方法如下:

1、生成证书

mkcert-v1.4.1-windows-amd64.exe www.aaa.com aiPlatform.dev localhost 127.0.0.1 ::1 172.16.3.50

2、安装证书

mkcert-v1.4.1-windows-amd64.exe -install

3、把mkcert-v1.4.1-windows-amd64.exe目录中生成的证书www.aaa.com+5.pem和www.aaa.com+5-key.pem拷贝到nginx的目录中,修改证书

 

 

 

 

 

 

修改证书

 

 

4、重启nginx

nginx -s stop
nginx

 

 经过以上配置,证书可以被信任了,也可以正常访问wss://服务

 

 

 以上地址,可以使用上面命令中使用到的几个地址,包括虚拟域名解析

https://www.aaa.com:8443/asr_online_ws.html

 

 

 

 

 

cer证书转jks

java下面笔者在本地调试的时候,由于使用的是自签名证书,需要在调试过程中加载自签名的信任证书。

java下面只人jks,所需需要进行证书转换,命令如下

keytool -import -alias mycert -file www.xxx.com+5.pem -keystore D:\cert\www.xxx.com+5.jks

弹出的提示框输入两次changeit,然后输入"是”,java代码中在通信前设置证书

复制代码

public static void main(String[] args) {


    System.setProperty("javax.net.ssl.trustStore","cert\\www.xxx.com+5.jks");
    System.setProperty("javax.net.ssl.trustStorePassword", "changeit");

    int length = args.length;
    if(length==0)
    {
        System.out.println("请填写wav识别文件路径");
        return;
    }
    String WS_URL="wss://ai.xxx.cn:6002/wsapi/asrv2";
}

复制代码

 

 

版权归https://global.v2ex.com/t/365406及原作者所有

相关网址:

https://www.v2ex.com/t/524671

https://blog.filippo.io/mkcert-valid-https-certificates-for-localhost/

https://github.com/FiloSottile/mkcert

本博客文章绝大多数为原创,少量为转载,代码经过测试验证,如果有疑问直接留言或者私信我。
创作文章不容易,转载文章必须注明文章出处;如果这篇文章对您有帮助,点击右侧打赏,支持一下吧。

  • 7
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要下载和安装chromedriver驱动,可以按照以下步骤进行操作: 1. 首先,你可以在http://npm.taobao.org/mirrors/chromedriver/ 下载chromedriver驱动。此链接提供了chromedriver的下载地址。 2. 在下载页面,你可以选择适合你操作系统的版本,比如Windows、Mac或Linux,并下载对应的驱动文件。 3. 下载完成后,你可以将驱动文件解压到一个你可以方便访问的位置,比如你的项目文件夹或者系统的PATH环境变量所指向的目录。 4. 现在,你可以根据你的需求编写测试代码。你可以使用selenium库来控制浏览器进行自动化测试。 5. 这是一个简单的测试代码示例,你可以根据需要进行修改和扩展: from selenium import webdriver # 打开浏览器 driver = webdriver.Chrome() url = 'https://www.baidu.com/' driver.get(url) driver.maximize_window() # 控制台输入任意内容结束 input() driver.quit() 6. 在代码中,我们使用了webdriver.Chrome()来实例化一个Chrome浏览器对象,并通过get()方法打开了百度首页。你可以根据需要修改url。 7. 在代码的最后,我们使用了input()函数来使程序暂停,直到你在控制台中输入任意内容。这样可以让你在测试过程中进行观察和调试。 8. 最后,记得在测试完成后调用quit()方法来关闭浏览器。这样可以释放浏览器资源并结束测试。 请注意,以上步骤是亲测有效的,你可以根据需要进行适当的调整和扩展。希望这些信息对你有帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [chromedriver驱动的下载和安装!亲测有效!](https://blog.csdn.net/weixin_46064809/article/details/131082448)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [谷歌浏览器驱动下载及配置(火狐同理,亲测有效)](https://blog.csdn.net/2301_76701327/article/details/132027666)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值