Ich benutze Laravel Homestead und es funktioniert gut. Jetzt möchte ich HTTPS auf einer meiner Sites implementieren.
Um das zu erreichen, müssen Sie lediglich ssl: true
in Homestead.yaml hinzufügen und dann vagrant reload --provision ausführen.
Ich kann sehen, dass es funktioniert, wenn ich über dem Befehl ausführen, der Folgendes zeigt:
==> Homestead-7: Running provisioner: Shell...
Homestead-7: Running: script: Creating Certificate: laravel-cashier.local
==> Homestead-7: Running provisioner: Shell...
Homestead-7: Running: script: Creating Site: laravel-cashier.local
In /etc/nginx/ssl
kann ich sehen, dass diese 3 Dateien erstellt werden:
-rw-r--r-- 1 root root 683 Jul 19 16:26 laravel-cashier.local.cnf
-rw-r--r-- 1 root root 1269 Jul 19 16:26 laravel-cashier.local.crt
-rw-r--r-- 1 root root 1704 Jul 19 16:26 laravel-cashier.local.key
Aber wie geht es weiter?
Wenn ich versuche, die Site mit https auszuführen:
Muss ich weitere Schritte machen?
Hinweis: Ich verwende die neueste Version 2.1.0 von Homestead.
Ich habe schon viele Posts gesehen, aber ich denke, dass sie zu alt sind und keine genauen Schritte zum Erreichen des Ergebnisses angeben:
https://laracasts.com/discuss/channels/tips/tip-how-to-enable-ssl-in-Homestead-20
https://laracasts.com/discuss/channels/servers/Homestead-ssl
Ich gehe davon aus, dass Sie Windows + Vagrant machine mit Homestead verwenden.
In diesem Fall ist laravel-cashier.local
Ihre Webanwendung.
Sie müssen das Zertifikat in Vagrant in Nginx in einen externen Ordner kopieren:
$ Sudo cp /etc/nginx/ssl/laravel-cashier.local.crt ~/laravel-cashier/laravel-cashier.local.crt
In der Windows-Umgebung können Sie dieses Zertifikat mit einem Doppelklick installieren und den nächsten spezifischen Speicher auswählen:
Vertrauenswürdige Stammzertifizierungsstellen
Starten Sie Ihren Browser neu. Erledigt.
Weitere Informationen zum Hinzufügen eines Zertifikats: https://technet.Microsoft.com/en-us/library/cc754841(v=ws.11).aspx#BKMK_addlocal
HINWEIS: Dies gilt für bestimmte Browser: Google Chrome
Es ist, wie ich zuerst in meinem Kommentar vermutet und erwähnt habe. Ihre SSL-Konfiguration scheint korrekt zu sein, da sie meldet, dass die Verbindung sicher ist. Sie verwenden ein selbstsigniertes Zertifikat, das für die Entwicklung in Ordnung ist, jedoch nicht von einer anerkannten Zertifizierungsstelle signiert ist. Daher vertraut der Browser dem nicht. Sobald Sie Ihr Projekt jedoch für die breite Öffentlichkeit bereitgestellt haben, möchten Sie ein Zertifikat von einer anerkannten Zertifizierungsstelle erwerben. Sobald Sie dieses Zertifikat haben, wird dieser Fehler behoben.
Homestead funktioniert ordnungsgemäß, jedoch sind selbstsignierte Zertifikate ab Chrome 58 nicht mehr gültig. Sie sollten das Stammzertifikat für jeden Standort manuell in Chrome installieren. Beispiel: link
Dies ist nur eine einjährige Frage, aber es fühlt sich an, als wäre sie wirklich alt.
Fist - Mit der Version 6.1.0 der Vagabundenbox "laravel/Homestead" benötigen Sie keinen ssl: true
, er ist standardmäßig aktiviert, Ihr Browser weiß jedoch nicht, ob er dem SSL-Zertifikat trotzdem vertrauen kann.
Das Browservertrauen ist ein anderes Problem als Laravel und Homestead, siehe this answer, um es zu lösen.