因此,我选择将Cloudflare的共享SSL证书与CDN一起使用,现在我注册的网站在浏览器中显示了该证书:
“颁发给”域不是我的域,这引起了问题:
我程序的https post API认为我的网站没有有效的证书
但是,当我使用Chrome浏览器打开网站时,将显示安全图标:
浏览器似乎认为Cloudflare共享证书可以,
而“发布给”域显然不是我的域
所以问题是:
为什么浏览器为什么信任共享的SSL证书,并且“颁发给”与我的域不匹配,而C#程序的WebRequest不信任呢?
最佳答案
事实证明,证书详细信息中有一个“主题备用名称”字段,它使浏览器可以信任非“颁发给”域的证书,这要归功于@SLaks。
它对我的C#api访问不起作用的原因是Unity不支持HTTPS的ECDH(椭圆曲线Diffie–Hellman),而Cloudflare仅支持ECDH。
因此,通过Cloudflare连接到我的服务器的HTTPS api适用于Chrome,但不适用于Unity。我四处搜索,发现它不适用于某些版本的Monodevelop产品线和Xiamarin。
Bug