Google chromes更新至版本58几天前开始使我的自签名证书无效。 这是抱怨失踪subjectAltNames 。 我做了一些研究,并尝试了几个build议(这将不起作用),但后来发现这个职位 ,我唯一可以工作。
还是我?
现在接受我的新生成和import的证书,我正在路上,
直到我在我的PHP web应用程序中打开一个页面,该页面需要在同一个开发机器上从另一个微型Web服务加载数据。
stream_socket_client():SSL操作失败,代码为1. OpenSSL错误消息:错误:14090086:SSL例程:ssl3_get_server_certificate:
现在我一直在用google和这个修补程序大约4个小时,只是无法绕过它。
题
为什么铬接受我的证书。 无论如何curl , openssl s_client所有的工具unable to verify the first certificate或invalid certificate ? 我试图通过证书作为参数,但仍然显然无效。
用curl和openssl调用证书文件作为参数继续给我这个错误
SSL证书validation结果:无法获得本地颁发者证书(20),
我想在一天结束的时候我会完全秃顶的。
笔记
虚拟机是我的本地开发环境,所以我确实有多个域,有自己的证书和密钥
虚拟机位于IP 192.168.33.10。 这意味着chrome不能访问localhost。 然而,curl和openssl s_clinet试图访问locahost
服务器是运行ubuntu 14.04的虚拟机
在主机上安装带有MMC(微软pipe理控制台)的自签名证书
错误肯定来自试图访问Web服务的客户端类。
我试图通过证书作为参数,但仍然显然无效。
我完全意识到,我可以将validation对象设置为false,或者将请求传递给请求,但我从中没有学到任何东西。
SSL会话:协议:TLSv1.2
运行sudo dpkg-reconfigure ca-certificates来更新证书
已经运行sudo update_ca_ccertificates
我已经达到了9000的挫折水平
恢复更新
我重新生成了v3扩展closures的新证书,并返回chrome告诉我subjectAltName丢失,但curl正在工作。 我需要弄清楚如何使curl和chrome都能接受的证书成为现实。
find一个更简单的openssl.conf更简单的教程 。 在我最初尝试添加SAN的过程中,我必须在conf中添加未注释的额外行,这些额外的信息会增加导致冲突的证书。 遵循这个模板,我的证书全面工作:
[req] distinguished_name = req_distinguished_name req_extensions = v3_req [req_distinguished_name] countryName = Country Name (2 letter code) countryName_default = US stateOrProvinceName = State or Province Name (full name) stateOrProvinceName_default = MN localityName = Locality Name (eg, city) localityName_default = Minneapolis organizationalUnitName = Organizational Unit Name (eg, section) organizationalUnitName_default = Domain Control Validated commonName = Internet Widgits Ltd commonName_max = 64 [ v3_req ] # Extensions to add to a certificate request basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment subjectAltName = @alt_names [alt_names] DNS.1 = kb.example.com DNS.2 = helpdesk.example.org DNS.3 = systems.example.net IP.1 = 192.168.1.1 IP.2 = 192.168.69.14
感谢您的评论@ garethTheRed。 您的意见帮助我重新思考我的方法来debugging此问题。
即使在这里开始一个post,帮助我摆出我所尝试的,并帮助大脑想出更多可能的解决scheme。