微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何为通过具有多个SAN的localhost服务的测试站点正确配置自签名证书?

如何解决如何为通过具有多个SAN的localhost服务的测试站点正确配置自签名证书?

我有一个小型测试网站,我试图通过https将其提供给webview上的Android模拟器。我一直在计算机上生成自签名证书,并将其导入到模拟器的证书存储中,但是当我在Webview中加载页面时,我总是收到无效的通用名称错误

由于Android仿真器位于虚拟防火墙之后,因此它们无法访问与开发计算机相同的网络接口。我不能只是从仿真器加载本地主机并将其转到127.0.0.1回送地址。而是在模拟器上将其别名为10.0.2.2。

在创建自签名证书时,在配置文件中(根据this问题的说明),我将域设置为localhost并将10.0.2.2设置为SAN,但仍然无法正确进行操作从我的模拟器加载网站的https版本。我可能做错了什么?

我的部分cnf文件(主要来自this问题的最高答案):

...

[ subject ]
...
commonName              = localhost
emailAddress            = me@home.com

...

[ req_ext ]
subjectKeyIdentifier        = hash
basicConstraints        = CA:FALSE
keyUsage            = digitalSignature,keyEncipherment
subjectAltName          = @alternate_names
nsComment           = "OpenSSL Generated Certificate"

[ alternate_names ]
DNS.1       = 127.0.0.1
DNS.2       = 10.0.2.2

解决方法

我最终解决此问题的方式有点破烂。我在公司的公共DNS中添加了一个新的子域,然后将其反向代理到127.0.0.1,并用新域替换了证书中的CN。

例如,新域-abc.xyz-corp.com。当我的仿真器尝试访问该域时,它将进入公司的dns并发送到127.0.0.1,然后解析到托管在此的Webapp。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。