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

版权归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

原文地址:https://www.cnblogs.com/passedbylove/p/12054364.html

时间: 2024-10-29 09:12:47

https本地自签名证书添加到信任证书访问的相关文章

图解Win7如何手动添加受信任证书

点击开始->运行,如下图所示:   弹出"控制台"窗口如下,如下图所示:   点击"文件-添加/删除管理单元",如下图所示:   选择"证书",并点击"添加",如下图所示:   在弹出的窗口上选择"我的用户帐户"后点击"完成",如下图所示:   点击"确定",如下图所示:   选择要添加的证书,右键复制,如下图所示:   在左边窗口的"个人"

jdk信任证书

在使用httpclient请求时,使用proxy设置后,然后就报错了. javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requ

android https遇到自签名证书/信任证书

对于CA机构颁发的证书Okhttp默认支持 可以直接访问 但是对于自定义的证书就不可以了(如:https ://kyfw.12306.cn/otn/), 需要加入Trust 下面分两部分来写,一是信任所有证书,二是信任指定证书,访问自签名的网站 一.信任所有证书 1. 在你的module 下 build.gradule里添加 dependencies { ... compile 'com.zhy:okhttputils:2.6.2' ...} 2.新建MyApplication public c

使用linux自建证书(ios强制https 微信小程序强制https 本地开发环境)

前言:  作为一个运维人员不背锅,谁背呢! 正文: 现在都要https了,很多童鞋也痛苦本地该如何搭建https环境,网上一搜 一搜一大把,但是使用就...... 今天在这里笔者就教大家一步一步使用linux搭建本地的https环境...因我司使用的nginx 所以接口相关的服务端配置 也只列出nginx 的配置接下来看笔者如何一步一步弄好https.(可以调用openssl命令雷同!) 假设我司有alp环境,bet环境 我司线上域名为test.com 对应的则为 test.alp test.b

添加自签发的 SSL 证书为受信任的根证书

通过 SSL 加密的 HTTPS 连接访问网站时,需要安装并配置一个受信任的 CA 根证书(Trusted CA Root Certificate).平常访问一些加密网站之所以不需要自己安装证书,是因为系统或浏览器已经提前安装了一些受信任机构颁发的证书.但有些时候访问一些组织或个人自己签发证书的网站的时候,就会收到浏览器发出的警告.此时可以将该证书添加到“受信任的根证书颁发机构”存储区,然后就不会再收到安全提示了. 快捷阅读目录 前言 从Windows 自带的浏览器 Internet Explo

搭建https本地服务器:如何得到被所有客户端认可的ssl证书

https,作为http的加密版,作用还是很大的:能够提升网站搜索权重,让你的网站更安全,而且如果你的网站没有使用https的话,将无法作为移动设备原生应用的api接口.可见掌握为网站启用https的技能还是很有用的. 当之前没接触过https的新人看到搭建https本地服务器这个需求,大部分心里都会暗想,不就是多了个s嘛,配置改一下不就完事了.如果你这样想,那么你很可能马上就会叫苦连天:怎么这么麻烦??步骤这么繁琐??不就是http加一个s吗?? 首先先明确一点,申请ssl证书不需要掌握它的原

HTTPS 信任证书

使用HttpsURLConnection访问HTTPS链接时一般需要引入证书,否则会产生异常. 但是也可以使用信任所有证书的方式来达到访问的目的. 经上网查询资料发现一个很好用的类来实现信任所有证书的功能.特此记录. 代码来自[这里](http://javaweb.org/?p=1237) 类代码 import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import ja

将证书添加到受信任的根证书存储失败,出现以下错误:访问控制列表(ACL)结构无效

问题出现情景: 使用 vs2017 创建一个 ASP.NET Core Web 应用程序 -> Ctrl + F5 运行项目 选择是,但是添加证书失败,是什么原因导致的我不知道,有大佬的知道的话可以告知我 浏览器的效果显示 着手解决 根据现有vs的弹框提示,我理解为证书没有添加到信任区,需要手动添加证书到信任区 (1. 找出证书,2. 将它添加到受信任的存储区) vs 提示添加 弹框  相信 IIS Express SSL 证书 , 所以我们打开IIS,导出证书 最终得到证书 2. 导入证书 到

nginx 配置https并自签名证书

2016-10-28 转载请注明出处:http://daodaoliang.com/ 作者: daodaoliang 版本: V1.0.1 邮箱: [email protected] 参考链接: 这里 和 这里 和 官方文档 1. 制作服务器证书 服务器CA私钥: openssl genrsa -des3 -out ca.key 2048 制作解密后的CA私钥(一般无此必要): openssl rsa -in ca.key -out ca_decrypted.key ca.crt CA根证书(公