如何在本地Laravel Homestead网站上获得https证书
我遇到了这个问题: 我在Windows 10 Chrome版本65.0.3325.181(官方版本)(64位)中看到的错误是: 你的连接不是私人的 攻击者可能试图窃取您的 来自((mysite))的信息(例如,密码、, 邮件或信用卡)。了解更多信息网络::错误证书权限无效 此页面不安全(HTTPS已损坏) 证书-丢失 这个 站点缺少有效的受信任证书 (网络::错误证书权限无效) Firefox Quantum 59.0.2(64位)说: 您的连接不安全 ((mysite))的所有者已配置其网站 不恰当。为了保护您的信息不被窃取,Firefox提供了 未连接到此网站 连接不安全 无法验证此证书,因为 发行人不详 我已经试过: 我想知道这是否意味着我还没有使用(它的变更日志中有“使用自定义根证书签署SSL证书”),我想知道这是否就是为什么我会有这个SSL HTTPS问题如何在本地Laravel Homestead网站上获得https证书,laravel,ssl,https,ssl-certificate,homestead,Laravel,Ssl,Https,Ssl Certificate,Homestead,我遇到了这个问题: 我在Windows 10 Chrome版本65.0.3325.181(官方版本)(64位)中看到的错误是: 你的连接不是私人的 攻击者可能试图窃取您的 来自((mysite))的信息(例如,密码、, 邮件或信用卡)。了解更多信息网络::错误证书权限无效 此页面不安全(HTTPS已损坏) 证书-丢失 这个 站点缺少有效的受信任证书 (网络::错误证书权限无效) Firefox Quantum 59.0.2(64位)说: 您的连接不安全 ((mysite))的所有者已配置其网站
要使证书正常工作,我现在应该采取哪些步骤?您的问题是,颁发者未知。正如你在错误中提到的; 此站点缺少有效的受信任证书 或 此站点缺少有效的受信任证书(net::ERR\u CERT\u AUTHORITY\u INVALID) 让我们首先了解发生此错误的原因。浏览器具有受信任的证书颁发机构列表。您可以从不同浏览器的设置/首选项部分查看此列表。如果您的证书不是由这些机构之一颁发的,那么您将得到上述错误 在本地主机上修复它 我可以想出两种可能的解决办法
我希望它能解决这个问题 不幸的是,我没有一种简单的方法在Windows上检查它,所以我打算在这里使用Linux上运行的VirtualBox。安装Wagrant,然后:
$ vagrant box add laravel/homestead
$ git clone https://github.com/laravel/homestead.git
$ cd homestead
$ git checkout v7.3.0
$ bash init.sh
我对homestad.yaml进行了一些简化(您可能更喜欢使用默认值):
---
ip:“192.168.10.10”
提供者:virtualbox
文件夹:
-地图:/home/yuri/\u1/la1
致:/home/vagrant/code
地点:
-地图:宅地
致:/home/vagrant/code/public
然后:
我试图在系统范围内信任服务器证书,但没有成功。它出现在Firefox证书管理器的服务器选项卡上,但这并不能使Firefox信任它。我可能已经添加了一个例外,但是信任CA证书看起来是一个更好的选择。信任CA证书使浏览器信任他们颁发的任何证书(在Homestead下运行的新站点)。所以我们将在这里使用CA证书:
$ vagrant ssh -c 'cat /etc/nginx/ssl/ca.homestead.homestead.crt' > ca.homestead.homestead.crt
$ sudo trust anchor ca.homestead.homestead.crt
$ trust list | head -n 5
pkcs11:id=%4c%f9%25%11%e5%8d%ad%5c%2a%f3%63%b6%9e%53%c4%70%fa%90%4d%77;type=cert
type: certificate
label: Homestead homestead Root CA
trust: anchor
category: authority
然后,我将192.168.10.10 homestad.test
添加到/etc/hosts
,重新启动Chromium,它成功了:
另外,我正在运行Chromium 65.0.3325.162和Firefox 59.0
窗户
显然,Windows没有trust
实用程序。在Windows下有:本地计算机和当前用户证书存储。使用本地机器证书存储没有意义,因为我们只让它为当前用户工作。然后,存在子存储。其中最感兴趣的是两个预定义的证书颁发机构:受信任的根证书颁发机构和中间证书颁发机构存储。在命令行中通常称为
您可以通过以下方式访问Chrome的证书管理器chrome://settings/?search=Manage%20certificates,然后单击管理证书。最感兴趣的是受信任的根证书颁发机构和中间证书颁发机构选项卡
获取manager证书的一种方法是:
结果如下(对于本地计算机和当前用户证书存储):
其他选项包括双击浏览器中的证书、从Chrome的证书管理器导入证书、使用证书MMC管理单元(运行certmgr.msc
)或使用
对于那些安装了grep
的用户,以下是如何快速检查证书的位置:
>certutil.exe -store -user root | grep "homestead\|^root\|^CA" ^
& certutil.exe -store -user CA | grep "homestead\|^root\|^CA" ^
& certutil.exe -store -enterprise root | grep "homestead\|^root\|^CA" ^
& certutil.exe -store -enterprise CA | grep "homestead\|^root\|^CA"
因此,将CA证书安装到当前用户>受信任的根证书颁发机构存储中似乎是最好的选择。并且确保不要忘记
更深入地解释它是如何工作的
在Vagrantfile
中,它需要,然后运行。这是一种方法,它将vagrant
配置为做好所有必要的准备
在那里,我们可以:
if settings.include?“站点的
设置[“站点”]。每个站点|
#创建SSL证书
config.vm.provision“shell”do|s|
s、 name=“创建证书:”+站点[“地图”]
s、 path=scriptDir+“/create certificate.sh”
s、 args=[站点[“地图”]]
结束
...
config.vm.provision“shell”do|s|
...
s、 path=scriptDir+“/service-#{type}.sh”
...
结束
...
结束
结束
因此,它们分别创建证书和nginx
config
进一步阅读
显然,您必须将证书添加到受信任的CA存储中。我让它自动决定,但这不起作用。我还把它添加到了我的个人商店,但也不起作用 因此,步骤是(如果你在windows上)按你的windows键,输入“Internet选项”,然后打开你的Internet选项。然后单击“内容”选项卡。从这里点击中间的“证书”。 然后单击导入并单击下一步。浏览到保存证书的位置 然后单击“放置所有证书”
$ vagrant ssh -c 'ls -1 /etc/nginx/ssl'
ca.homestead.homestead.cnf
ca.homestead.homestead.crt
ca.homestead.homestead.key
ca.srl
homestead.test.cnf
homestead.test.crt
homestead.test.csr
homestead.test.key
$ vagrant ssh -c 'cat /etc/nginx/ssl/ca.homestead.homestead.crt' > ca.homestead.homestead.crt
$ sudo trust anchor ca.homestead.homestead.crt
$ trust list | head -n 5
pkcs11:id=%4c%f9%25%11%e5%8d%ad%5c%2a%f3%63%b6%9e%53%c4%70%fa%90%4d%77;type=cert
type: certificate
label: Homestead homestead Root CA
trust: anchor
category: authority
>rem list Current User > Trusted Root Certification Authorities store
>certutil.exe -store -user root
>rem list Local Machine > Intermediate Certification Authorities store
>certutil.exe -store -enterprise CA
>rem GUI version of -store command
>certutil.exe -viewstore -user CA
>rem add certificate to Current User > Trusted Root Certification Authorities store
>certutil.exe -addstore -user root path\to\file.crt
>rem delete certificate from Current User > Trusted Root Certification Authorities store by serial number
>certutil.exe -delstore -user root 03259fa1
>rem GUI version of -delstore command
>certutil.exe -viewdelstore -user CA
root
homestead.test.crt
error
ca.homestead.homestead.crt
appears in Trusted Root Certification Authorities tab
CA
homestead.test.crt
doesn't work, appears in Other People tab
ca.homestead.homestead.crt
doesn't work, appears in Intermediate Certification Authorities tab
>certutil.exe -store -user root | grep "homestead\|^root\|^CA" ^
& certutil.exe -store -user CA | grep "homestead\|^root\|^CA" ^
& certutil.exe -store -enterprise root | grep "homestead\|^root\|^CA" ^
& certutil.exe -store -enterprise CA | grep "homestead\|^root\|^CA"