web-dev-qa-db-fra.com

Comment obtenir un certificat https sur le site local de Laravel Homestead

Je reçois ce problème:

 enter image description here

L'erreur que je vois dans Windows 10 Chrome version 65.0.3325.181 (version officielle) (64 bits) est la suivante:

Votre connexion n'est pas privée 

Les attaquants pourraient essayer de voler votre informations de ((mysite))) (par exemple, mots de passe, messages ou cartes de crédit). En savoir plus NET :: ERR_CERT_AUTHORITY_INVALID

Cette page n'est pas sécurisée (HTTPS endommagé). 

Certificat - manquant 

Ce il manque un certificat valide et de confiance au site (net :: ERR_CERT_AUTHORITY_INVALID).

Firefox Quantum 59.0.2 (64 bits) indique:

Votre connexion n'est pas sécurisée

Le propriétaire de ((mysite)) a configuré son site web incorrectement. Pour protéger vos informations contre le vol, Firefox dispose de non connecté à ce site.

La connexion n'est pas sécurisée 

Impossible de vérifier ce certificat car le l'émetteur est inconnu.

J'ai déjà essayé: 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.

Je me demande si cela signifie que je n'utilise pas encore la version 7.1.0 (qui a dans son journal des modifications "signer des certificats SSL avec un certificat racine personnalisé"), et je me demande si c'est pourquoi j'ai ce problème SSL HTTPS .

Quelles sont les prochaines étapes que je devrais essayer maintenant pour que le certificat fonctionne? 

8
Ryan

Malheureusement, je n'ai pas de moyen facile de le vérifier sous Windows, je vais donc utiliser VirtualBox sous Linux ici. Installez vagrant, puis:

$ vagrant box add laravel/Homestead
$ git clone https://github.com/laravel/Homestead.git
$ cd Homestead
$ git checkout v7.3.0
$ bash init.sh

J'ai un peu simplifié Homestead.yaml (vous préférerez peut-être rester avec les valeurs par défaut):

---
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

Ensuite:

$ 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;
}

Comme nous pouvons le voir, il contient les certificats dans /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

J'ai essayé de faire confiance au certificat de serveur dans tout le système, mais cela n'a pas fonctionné. Il apparaissait sur l'onglet Serveurs dans le gestionnaire de certificats de Firefox, mais cela ne faisait pas confiance à Firefox. J'aurais probablement pu ajouter une exception, mais faire confiance aux certificats de l'autorité de certification semble être une meilleure option. L'approbation du certificat de l'autorité de certification permet au navigateur d'approuver tout certificat émis (nouveaux sites sous Homestead). Nous allons donc aller avec certificat CA ici:

$ 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

Ensuite, j'ai ajouté 192.168.10.10 Homestead.test à /etc/hosts, redémarré Chromium, et cela a fonctionné:

P.S. J'utilise Chromium 65.0.3325.162 et Firefox 59.0.

Les fenêtres

Apparemment, Windows n'a pas l'utilitaire trust. Sous Windows, on a deux magasins : Magasins de l'ordinateur local et du certificat d'utilisateur actuel. Inutile d'utiliser Local Store Certificate Store, car nous le faisons fonctionner uniquement pour notre utilisateur actuel. Ensuite, il y a des sous-magasins. Deux de ces domaines étant les plus intéressants: les autorités de certification racines de confiance et les magasins des autorités de certification intermédiaires. Communément appelé en ligne de commande root et CA .

Pour accéder au gestionnaire de certificats de Chrome, procédez comme suit: chrome: // paramètres /? Search = Gérer% 20 certificats, puis cliquez sur Gérer les certificats. Les onglets Autorités de certification racines de confiance et Autorités de certification intermédiaires sont particulièrement intéressants.

Un moyen de gérer les certificats est via ligne de commande :

>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

Les résultats sont les suivants (pour les magasins de certificats d'ordinateur local et d'utilisateur actuel):

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

Vous pouvez également cliquer deux fois sur un certificat dans l'Explorateur, importer des certificats à partir du gestionnaire de certificats de Chrome, utiliser le composant logiciel enfichable Certificats MMC (exécuter certmgr.msc) ou utiliser CertMgr.exe .

Pour ceux qui ont installé grep, voici comment vérifier rapidement où se trouve le certificat:

>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"

Ainsi, l'installation du certificat de l'autorité de certification dans le magasin Utilisateur actuel> Autorités de certification racines de confiance semble être la meilleure option. Et assurez-vous que ne pas oublier de redémarrez votre navigateur .

explication plus détaillée de la façon dont cela fonctionne

Dans Vagrantfile, il nécessite scripts/Homestead.rb , puis exécute Homestead.configure . C’est la méthode qui configure vagrant pour effectuer toutes les préparations nécessaires.

Là nous pouvons voir :

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

Ainsi, ces deuxfichiers créent le certificat et nginx config respectivement.

lecture complémentaire

Comment rendre le certificat SSL localhost de confiance du navigateur?

10
x-yuri

Votre problème est que l'émetteur est inconnu. Comme vous l'avez mentionné dans les erreurs: "Il manque un certificat valide de confiance sur ce site" Ou "Il manque un certificat de sécurité valide sur ce site (net :: ERR_CERT_AUTHORITY_INVALID)"

Permet d’abord de comprendre pourquoi cette erreur se produit. Les navigateurs ont une liste des autorités de certification de confiance. Vous pouvez voir cette liste à partir de la section réglage/préférences de différents navigateurs. Si votre certificat n'est pas délivré par l'une de ces autorités, vous obtiendrez l'erreur ci-dessus.

LE FIXER SUR L’HÔTEL LOCAL Je peux penser à deux solutions possibles; 

  1. Ajoutez le certificat manuellement au navigateur et celui-ci commencera à s'ouvrir avec https. 

OR

  1. Signez le certificat avec une autorité déjà approuvée. Installez les certificats sur le serveur local. Configurez Host dans le fichier/etc/hosts avec le même nom de votre domaine que celui sur lequel vous avez signé le certificat. 

J'espère que ça va régler le problème. 

0
Umair Anwar

Apparemment, vous devez ajouter votre certificat au magasin de l'autorité de certification de confiance. Je l'ai laissé auto décider et cela n'a pas fonctionné. De plus, je l'ai ajouté à mon magasin personnel, qui ne fonctionnait pas non plus. 

Donc, si vous êtes sur Windows, appuyez sur votre touche Windows et tapez "Options Internet" et ouvrez bien vos options Internet. Puis cliquez sur l'onglet "contenu". De là, cliquez sur "certificats" qui est le bouton du milieu.  enter image description here

Puis cliquez sur Importer et sur Suivant. Accédez à l'emplacement où vous avez enregistré le cert. 

Cliquez ensuite sur "Placer tous les certificats dans le magasin suivant", cliquez sur Parcourir et sélectionnez les "Autorités de certification racines de confiance".

 enter image description here

Et vous devriez avoir un popup vous demandant de confirmer et d’avertir tout ce jazz.

Et puis assurez-vous de redémarrer votre navigateur. Sur chrome, vous pouvez taper ceci dans la barre d’URL: chrome://restart. Boom, j'espère que cela vous a aidé!

0
Radmation