Ich bekomme dieses Problem:
Der Fehler, den ich in Windows 10 Chrome Version 65.0.3325.181 (Official Build) (64-Bit) sehe, ist:
Ihre Verbindung ist nicht privat
Angreifer versuchen möglicherweise, Ihre Zu stehlen. Informationen von ((mysite)) (z. B. Kennwörter, Nachrichten oder Kreditkarten). Weitere Informationen NET :: ERR_CERT_AUTHORITY_INVALID
Diese Seite ist nicht sicher (defektes HTTPS).
Zertifikat - fehlt
Diese Auf der Site fehlt ein gültiges, vertrauenswürdiges Zertifikat (net :: ERR_CERT_AUTHORITY_INVALID).
Firefox Quantum 59.0.2 (64-Bit) sagt:
Ihre Verbindung ist nicht sicher
Der Eigentümer von ((mysite)) hat seine Website .__ konfiguriert. unsachgemäß. Um Ihre Daten vor Diebstahl zu schützen, hat Firefox nicht mit dieser Website verbunden.
Verbindung ist nicht sicher
Dieses Zertifikat konnte nicht überprüft werden, da Aussteller ist unbekannt.
Ich habe bereits versucht: https://stackoverflow.com/a/47755133/470749
vboxmanage --version
5.2.6r120293
vagrant -v
Vagrant 2.0.2
git branch
* (HEAD detached at v7.3.0)
vagrant box list
laravel/Homestead (virtualbox, 5.2.0)
vagrant box update
==> vboxHomestead: Checking for updates to 'laravel/Homestead'
vboxHomestead: Latest installed version: 5.2.0
vboxHomestead: Version constraints: >= 5.2.0
vboxHomestead: Provider: virtualbox
==> vboxHomestead: Box 'laravel/Homestead' (v5.2.0) is running the latest version.
Ich frage mich, ob dies bedeutet, dass ich noch nicht release 7.1.0 verwende (was in seinem Änderungsprotokoll "SSL-Zertifikate mit einem benutzerdefinierten Stammzertifikat signieren" hat), und ich frage mich, ob ich dieses SSL-HTTPS-Problem habe .
Was sind die nächsten Schritte, die ich jetzt versuchen sollte, damit das Zertifikat funktioniert?
Leider habe ich keine einfache Möglichkeit, dies unter Windows zu überprüfen. Daher werde ich hier VirtualBox unter Linux verwenden. Installieren Sie vagrant
und dann:
$ vagrant box add laravel/Homestead
$ git clone https://github.com/laravel/Homestead.git
$ cd Homestead
$ git checkout v7.3.0
$ bash init.sh
Ich habe Homestead.yaml
etwas vereinfacht (Sie möchten vielleicht lieber bei den Standardeinstellungen bleiben):
---
ip: "192.168.10.10"
provider: virtualbox
folders:
- map: /home/yuri/_/la1
to: /home/vagrant/code
sites:
- map: Homestead.test
to: /home/vagrant/code/public
Dann:
$ mkdir -p ~/_/la1/public
$ echo '<?php echo "it works";' > ~/_/la1/public/index.php
$ vagrant up
$ vagrant ssh -c 'ls /etc/nginx/sites-enabled'
Homestead.test
$ vagrant ssh -c 'cat /etc/nginx/sites-enabled/Homestead.test'
server {
listen 80;
listen 443 ssl http2;
server_name .Homestead.test;
root "/home/vagrant/code/public";
...
ssl_certificate /etc/nginx/ssl/Homestead.test.crt;
ssl_certificate_key /etc/nginx/ssl/Homestead.test.key;
}
Wie wir sehen können, hat es die Zertifikate in /etc/nginx/ssl
:
$ 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
Ich habe versucht, dem Serverzertifikat systemweit zu vertrauen, aber es hat nicht funktioniert. Es wurde im Firefox-Zertifikats-Manager auf der Registerkarte "Server" angezeigt, was jedoch dazu führte, dass Firefox dem nicht vertraute. Ich hätte wahrscheinlich eine Ausnahme hinzufügen können, aber das Vertrauen auf CA-Zertifikate scheint eine bessere Option zu sein. Durch das Vertrauen auf ein Zertifizierungsstellenzertifikat vertraut der Browser jedem von ihm ausgestellten Zertifikat (neue Websites, die unter Homestead ausgeführt werden). Also gehen wir hier mit dem CA-Zertifikat:
$ 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
Dann habe ich 192.168.10.10 Homestead.test
zu /etc/hosts
hinzugefügt, Chromium neu gestartet und es hat funktioniert:
P.S. Ich verwende Chromium 65.0.3325.162 und Firefox 59.0.
Anscheinend verfügt Windows nicht über das Dienstprogramm trust
. Unter Windows hat man zwei Speicher : Lokale Computer und aktuelle Benutzerzertifikate. Es macht keinen Sinn, den Local Machine Certificate Store zu verwenden, da wir es nur für unseren aktuellen Benutzer funktionieren lassen. Dann gibt es Substores. Zwei vordefinierte davon sind am interessantesten: Vertrauenswürdige Stammzertifizierungsstellen und Zwischenzertifizierungsstellen. In der Befehlszeile allgemein als Root und CA bezeichnet.
Sie können auf den Zertifikatsmanager von Chrome zugreifen, indem Sie Folgendes unter chrome ausführen: // settings /? Search = Manage% 20certificates und dann auf Zertifikate verwalten klicken. Am meisten interessant sind die Registerkarten Vertrauenswürdige Stammzertifizierungsstellen und Zwischenzertifizierungsstellen.
Eine Möglichkeit, Zertifikate zu verwalten, ist über Befehlszeile :
>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
Die Ergebnisse lauten wie folgt (sowohl für den lokalen Computer als auch für das Zertifikat des aktuellen Benutzerzertifikats):
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
Andere Optionen wären das Doppelklicken auf ein Zertifikat im Explorer, das Importieren von Zertifikaten aus dem Chrome-Zertifikatmanager, das Verwenden des Snap-Ins MMC (Ausführen von certmgr.msc
) oder das Verwenden von CertMgr.exe
.
Für diejenigen, die grep
installiert haben, können Sie schnell überprüfen, wo sich das Zertifikat befindet:
>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"
Das Installieren des CA-Zertifikats im Speicher Aktueller Benutzer> Vertrauenswürdige Stammzertifizierungsstellen scheint daher die beste Option zu sein. Und vergewissere dich, dass nicht vergessen wird, starte deinen Browser neu .
In Vagrantfile
benötigt es scripts/Homestead.rb
und führt dann Homestead.configure
aus. Das ist die Methode, mit der vagrant
alle notwendigen Vorbereitungen trifft.
Da können wir siehe :
if settings.include? 'sites'
settings["sites"].each do |site|
# Create SSL certificate
config.vm.provision "Shell" do |s|
s.name = "Creating Certificate: " + site["map"]
s.path = scriptDir + "/create-certificate.sh"
s.args = [site["map"]]
end
...
config.vm.provision "Shell" do |s|
...
s.path = scriptDir + "/serve-#{type}.sh"
...
end
...
end
end
Also erstellen diese zweiDateien Zertifikate und nginx
config.
So machen Sie das Vertrauen des Browsers zum lokalen SSL-Zertifikat?
Ihr Problem ist, dass der Aussteller unbekannt ist. Wie Sie in den Fehlern erwähnt haben; "Dieser Site fehlt ein gültiges vertrauenswürdiges Zertifikat" Oder "Diese Site fehlt ein gültiges vertrauenswürdiges Zertifikat (net :: ERR_CERT_AUTHORITY_INVALID)"
Lasst uns zuerst verstehen, warum dieser Fehler auftritt. Die Browser verfügen über eine Liste vertrauenswürdiger Zertifizierungsstellen. Sie können diese Liste im Abschnitt "Einstellungen/Einstellungen" verschiedener Browser anzeigen. Wenn Ihr Zertifikat nicht von einer dieser Behörden ausgestellt wird, wird der obige Fehler angezeigt.
BEHANDLUNG BEI LOKALHOST. Ich kann mir zwei mögliche Lösungen vorstellen.
OR
Ich hoffe, es wird das Problem beheben.
Anscheinend müssen Sie Ihr Zertifikat zum Speicher der vertrauenswürdigen Zertifizierungsstelle hinzufügen. Ich lass es automatisch entscheiden und das hat nicht funktioniert. Ich habe es auch zu meinem persönlichen Laden hinzugefügt, der auch nicht funktioniert hat.
Die Schritte sind also (wenn Sie unter Windows sind), Ihre Windows-Taste zu drücken und "Internetoptionen" einzugeben und Ihre Internetoptionen zu öffnen. Klicken Sie dann auf die Registerkarte "Inhalt". Klicken Sie hier auf "Zertifikate", die mittlere Schaltfläche.
Klicken Sie dann auf Importieren und Weiter. Navigieren Sie zu dem Speicherort, an dem Sie das Zertifikat gespeichert haben.
Klicken Sie dann auf "Alle Zertifikate in folgendem Speicher ablegen" und klicken Sie auf Durchsuchen, und wählen Sie "Vertrauenswürdige Stammzertifizierungsstellen" aus.
Sie sollten ein Popup erhalten, in dem Sie aufgefordert werden, Sie und den gesamten Jazz zu bestätigen.
Stellen Sie dann sicher, dass Sie Ihren Browser neu starten. Auf Chrome können Sie dies in die URL-Leiste eingeben: chrome://restart
. Boom Ich habe gehofft, dass dir das geholfen hat!