Lou*_*tte 11 safari ssl vagrant homestead macos-high-sierra
我安装了Vagrant和Homestead来在本地测试我的应用程序.当我http://mysite.app在Firefox和Chrome中访问时,一切正常.但是,Safari不允许我使用网站的http/非安全版本,并会自动将我重定向到安全(https)版本.例如,访问时http://mysite.app,我被重定向到https://mysite.app.
其他浏览器(Firefox和Chrome)不会重定向我,我可以使用标准的非安全版本.所以它不是服务器强制执行的重定向.
如果Safari允许我访问该https版本,重定向本身不会成为问题.由于它是本地开发环境,因此SSL证书是自签名的,Safari不允许我访问具有不可信证书的站点.所以最后,Safari can't establish a secure connection当使用Safari访问这个Vagrant站点时,我总是会遇到错误.
Safari不提供接受自签名证书的方式(不再?).同样,这不是Chrome或Firefox的问题,因为它们允许您直接从浏览器添加例外.
知道如何让Safari使用http网站版本或让Safari信任自签名证书吗?
仅供参考,我在High Sierra 10.13.2 Beta上使用Safari 11.0.2.在iMac和MacbookAir上的结果相同,因此它与计算机无关.
Lou*_*tte 13
虽然我没有找到为什么Safari想要强制使用SSL并且不想在这个Vagrant/Homestead盒子(如Firefox或Chrome)上使用我的网站的非安全(http)版本,但我发现了一种标记自我的方法签名的站点证书在MacOS Keychain Access中受信任.
请注意,这不应该是以前版本的MacOS的问题,因为Safari曾经允许您直接在浏览器中添加例外并继续使用无效的SSL证书.这个选项接缝在Safari 11(High Sierra)中消失了.
因此,访问我的Vagrant网站的解决方案是将站点证书保存在 主机上(使用与Vagrant盒或其他浏览器的ssh连接),将其添加到Keychain并将其标记为受信任.
然而,关于Keychain Access的另一个问题出现了.虽然这曾经在早期版本的MacOS中工作,但在High Sierra(或至少10.13.2 Beta)下,将Keychain Access应用程序中的证书标记为信任的功能已经消失.在我的iMac和MacbookAir上,双击添加到Keychain的证书绝对没有任何意义.即使Get Info从上下文菜单中单击也无法编辑证书.
解决方法是使用命令行将证书标记为受信任.使用终端,cd在计算机上保存证书的目录并运行以下命令:
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain example.app.cer
Run Code Online (Sandbox Code Playgroud)
更改example.app.cer您的证书名称.这将在Keychain Access中将证书标记为受信任,并允许您访问本地站点,就像使用有效证书签名一样.
tl; dr将从Vagrant/Homestead框中获取的站点证书添加到钥匙串,运行命令并使用https connexion.
小智 5
之前的答案并不完全正确。MacOS的高塞拉利昂拥有通过钥匙串访问应用程序信任的证书,所以没有必要CLI的能力。
脚步:
完毕。
| 归档时间: |
|
| 查看次数: |
10538 次 |
| 最近记录: |