Problème HTTPS avec ACME certificate intermédiaire



  • Bonjour,
    Nous avons mis en place un certificat letsencrypt par le package letsencrypt ACME sur notre pfsense 2.4.2-p1. or je fais un test sur ssl check
    la réponse est :

    The certificate is not trusted in all web browsers. You may need to install an Intermediate/chain certificate to link it to a trusted root certificate. Learn more about this error. The fastest way to fix this problem is to contact your SSL provider.

    Mais je ne comprends pourquoi ?

    Notre infrastructure est :

    Une @IP fixe sur le WAN un reverse proxy squid pour nos différents serveurs en DMZ avec des noms de domaines :

    nom1.domaine.eu
    nom2.domaine.eu
    nom3.domaine.eu

    Nous avons créé la certification par rapport à nom1.domaine.eu sur ACME et nous utilisons DNS-Manual depuis notre fournisseur de nom de domaine
    Le souci est que cela ne sécurise pas correctement le réseau car il manque un certificat intermédiaire. nous avons passé un des serveur en https en ajoutant la configuration sur le apache du serveurweb mais cela ne fonctionne pas.

    Merci beaucoup de vos réponse
    eric



  • Comprenez vous ce qu'est un certificat intermédiaire et une chaine de certification ?



  • Bonjour Merci de la réponse

    C'est parfois flou je l'avoue mais en lisant certains sites j'ai créé mon certificat letsencrypt avec ACME de pfsense (certificat CA je pense !!! puis il a créé la clé de cryptage pour créé les certificats !!!) mais la suite parait difficile à comprendre.

    Dans acme j'ai créer un certificat avec deux noms dedans et le ACME account nom1.mondomaine.eu et nom2.mondoamine.eu
    ensuite je vais dans certificat manager il m'a créé des certificats correspondant que je copie et que j'insère dans mon serveurweb
    SSLEngine on

                #   A self-signed (snakeoil) certificate can be created by installing
                #   the ssl-cert package. See
                #   /usr/share/doc/apache2/README.Debian.gz for more info.
                #   If both key and certificate are stored in the same file, only the
                #   SSLCertificateFile directive is needed.
                SSLCertificateFile      /etc/apache2/nom1.mondomaine.eu.cer
                SSLCertificateKeyFile /etc/apache2/nom1.mondomaine.eu.key
                SSLCACertificateFile /etc/apache2/domain.chain.crt
        SSLProtocol all -SSLv2 -SSLv3
        SSLHonorCipherOrder on
        SSLCompression off
        SSLOptions +StrictRequire
        SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECD$
    

    mais lorsque je fais un test il me renvoie le message du post précédent. il est vrai que la chaine de certification et le certificat intermédiaire me parait flou.
    Merci beaucoup
    Eric



  • Comment avez vous renseigné la directive SSLCertificateChainFile ?
    Manifestement vous n'êtes pas au clair sur ce sujet qui d'ailleurs n'a rien de spécifique à Pfsense.
    Très franchement je n'ai pas le temps de vous expliquer tout cela ici. Quelqu'un le fera peut-être.
    Si vous regardez la doc apache sur la configuration de SSL vous devriez y arriver.
    Par ailleurs les emplacements où vous avez mis les certificats et clés, ce n'est vraiment, vraiment pas une bonne idée de les mettre dans le répertoire apache2. Normalement on utilise /etc/ssl/ private pour la clé privée et etc/ssl/certs pour le certificat et les certificats intermédiaires.
    Tout cela est un peu brouillon. Une configuration SSL correct nécessite de la rigueur.



  • @audin said in Problème HTTPS avec ACME certificate intermédiaire:

    package letsencrypt ACME sur notre pfsense 2.4.2-p1

    Letenscrypt as a concept, and thus the related software is a very fast moving technology.
    Apply this rule and you'll be fine :
    Use this package only if you have the latest pfSense ( 2.4.3-RELEASE-p1 ) and the latest package ( 0.3_1 ) version.
    If not, it's game over.

    Edit :
    Oops .. FR_fr ici.
    Obtenir un certificat de Letenscrypt nécessite des paquets comme acme - le développent de ces logiciels va très vite, il y à beaucoup de mise en jour non-optionnelles.
    T'as qu'à faire ceci :
    N’utilise uniquement ce paquet 'acme' avec la dernière version de pfSense ( 2.4.3-RELEASE-p1 ) et la dernière version de "acme" ( 0.3_1 ).
    Après, ça va presque tout seule.
    Sinon, effectivement, ça ne va pas.

    Les certificats obtenu sont parfaitement utilsable par Apache.
    Mais encore faut il savoir quelle version tu utilise 2.2 ? 2.4 ? autre ?

    Pour un "2.4" ceci suffit (dans le virtual host, section <VirtualHost> -> <IfModule mod_ssl.c>

    SSLCertificateFile    /le/chemin/live/ton-domaine.tld/fullchain.pem
    SSLCertificateKeyFile /le/chemin/ton-domaine.tld/privkey.pem
    

    le tout suivant le doc d'Apache2.



  • Bonjour
    Merci de la réponse gertjan

    cela signifie et j'aurais des .pem cette fois ?

    car il me faut un certificat CAchain cela sera correct tu penses ?
    Merci
    Eric



  • bonjour gertjan

    je suis passé en 2.4.3.p1 et ma version d'apache est 2.4.10

    je dois supprimer tout mes certificat et refaire depuis le début tu penses ???

    le problème est lorsque je fais un test de https://mooodle.lyceeader.eu sur ssl check tout n'est pas correct.

    aurais tu une idée.
    Merci
    Eric



  • @audin said in Problème HTTPS avec ACME certificate intermédiaire:

    je dois supprimer tout mes certificat et refaire depuis le début tu penses ???

    Sache que toutes les certificats que "acme" a obtenu sont aussi stcoké ici :
    /cf/conf/acme/

    J'ai, entre autre,, un .pem à cet endroit.

    @audin said in Problème HTTPS avec ACME certificate intermédiaire:

    https://mooodle.lyceeader.eu sur ssl check tout n’est pas correct.

    "Pas correct" n'est pas la description.
    Cet URL a des problèmes plus gros : pas visible sur Internet, comme quoi qu'il n'existe pas ^^

    Par contre, pour tester il existe UN adresse :
    https://www.ssllabs.com

    Va voir ssltest/analyze.html?d=moodle.lyceeader.eu
    Pour avoir le A+, c'est simple - Google en parle beaucoup, c'est effectivement le fichier "chain" qui doit avoir le format

    -----BEGIN PRIVATE KEY-----
    MIIJRQIBADANBgkqhkiG9w0BAQEFAASCCS8wggkrAgEAAoICAQDWM5JE95KmKs01
    oMMrIKbuOzffsP/EGr1nKA2wwyICaa1B8bA72P0/9LLGdomsFamm0IwcUt3Sp43Z
    aHYaQxcivOjlveEm1RU1zHWATiihjSn8TepS3/p15eyBZqqtp7HBLw73SEmEhieJ
    ...
    DbTwRtAZZ9Iv2aDbpsQZ5Vcq0v+q7qRUuFB463wW3GpZPNI6M0HFA15D0XI8zdpx
    Rm8UDDftlg0rvrdtoVg3WLgoIjQvyN6b3A2R3igaDrpiFTs/ipI1Q08BokZOEpL1
    /raymR7c9yBv+j6tnJikbLFpEd/Viy6Ptw==
    -----END PRIVATE KEY-----
    -----BEGIN CERTIFICATE-----
    MIIH+zCCBuOgAwIBAgISA4oD2ke4q+aK8Q4EneunUSUUMA0GCSqGSIb3DQEBCwUA
    MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD
    ....
    6lSYWFgsV3N+sy8UtGwhNj0dUvEB2BTcaSp6EH7e7boJ/Ho7V9GpjNpKT3ESJmRg
    z9FlvUI3ZpHlhbMONF1N3hkCDcX+iskbfsJqYHwbrZxssQvPINa2wWAZMX/Y0w0g
    4sOBI3b8b0bpDN591MAGoxXYRmNRSu6csUYDVWxzgQ==
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    MIIEkjCCA3qgAwIBAgIQCgFBQgAAAVOFc2oLheynCDANBgkqhkiG9w0BAQsFADA/
    MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
    DkRTVCBSb290IENBIFgzMB4XDTE2MDMxNzE2NDA0NloXDTIxMDMxNzE2NDA0Nlow
    ....
    wApIvJSwtmVi4MFU5aMqrSDE6ea73Mj2tcMyo5jMd6jmeWUHK8so/joWUoHOUgwu
    X4Po1QYz+3dszkDqMp4fklxBwXRsW10KXzPMTZ+sOPAveyxindmjkW8lGy+QsRlG
    PfZ+G6Z6h7mjem0Y+iWlkYcV4PIWL1iwBi8saCbGS5jN2p8M+X+Q7UNKEkROb3N6
    KOqkqm57TH2H3eDJAkSnh6/DNFu0Qg==
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/
    MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
    ....
    R8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5
    JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo
    Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
    -----END CERTIFICATE-----
    -----BEGIN DH PARAMETERS-----
    MIICCAKCAgEAlKsZP9He0PUO8iTjS/LvdH3hnhIQ9uURC1NINAgqUEtXithmO8bp
    3N8kqLsK73LY5L87TmLV36vuOv1ocgFhNETxmcy6Al8DRzCpZUbmwOCeAI5t1eVm
    ...
    ZWfbWZ/BbFgcO88m5wdfwwjPwu9FA9oRdbEI6ffArjGylf2Prhr/w4teGhO7Fmk1
    8h9CVok0Rsl0GUtY1C5ktWI/gP+XM9lIrSgS42+mlA/8Xh7V0OdJHoMCAQU=
    -----END DH PARAMETERS-----
    ```)


  • @gertjan said in Problème HTTPS avec ACME certificate intermédiaire:

    Pour avoir le A+, c’est simple - Google en parle beaucoup, c’est effectivement le fichier “chain” qui doit avoir le format

    Explication totalement farfelue !
    Ce n'est absolument une question de format (format de quoi ?) mais essentiellement de configuration des suites cryptographiques supportées et de fonctionnalités comme la PFS.



  • @ccnet : effectivement, peu importe le 'format', c'est pour ça que j'ai montré ce que j'ai, moi, d'une façon visuelle.
    @audin pourrait ensuite trouver son 'pem' à l'endroit indiqué et l'ouvrir et comparer la structure. Comme ça il saurait vers quel fichier ce "SSLCertificateFile" doit pointer.

    @ccnet said in Problème HTTPS avec ACME certificate intermédiaire:

    (format de quoi ?)

    https://www.sslmarket.fr/ssl/help-la-difference-entre-certificats !? ( ☺ je déconne)

    edit :

    0_1529589653205_3d645e6e-2539-49ad-9813-9069af6d8e63-image.png

    C'est la dernière version 'acme' qui propose cette fonctionnalité. Il faut donc cocher l'option.



  • Bonjour et merci beaucoup pour vos idées mais je n'arrive pas encore à bien analyser mon souci

    mon pfsense est configurer comme ceci et les fichiers sont ceux-ci

    0_1529674753299_26c1ed77-4e8d-4160-a747-7f2ba11a3c6b-image.png

    et les fichiers d'ACME sur le pfsense

    0_1529674809053_aadd1d17-0dc5-484a-b561-84aa97cdd3c4-image.png

    j'ai placé ceci derrière mon pfsense ACME
    0_1529674637264_90abff0d-854c-40db-9cec-1c360cc60260-image.png

    configuration de mon reverse proxy

    0_1529674945618_f9bb3b3c-4330-42d0-95ce-f35c2508e8f4-image.png
    faut il que je change quelque chose sur ma configuration ou dans mon reverse proxy ou dans le serveurweb pour ne plus obtenir de souci
    0_1529675046052_2a118b8b-2fec-45b1-9d9e-437829208692-image.png

    Merci beaucoup de votre aide car je tourne en rond je n'arrive pas à progresser malgré vos généreuses aides
    Cordialment
    Eric



  • Comment vous dire ....
    Vous prenez tout cela à l'envers. Avant d'installer un reverse proxy dont vous pensez à tort qu'il va traiter vos besoins de sécurité, il serait instructif et plus efficace de commencer par une configuration de base de votre serveur web.

    1. https ou pas c'est un peu indifférent puisque votre site est accessible directement en http pour n'importe quelle page. A faire : une redirection permanente à la racine du site Permanent redirect. Aujourd'hui votre SSL ne sert à rien.

    2. Aucun des basiques minimaux n'est en place :

    • Les cookies ne sont pas sécurisés

    • Pas de gestion des CSP

    • Pas d'activation d'HSTS

    • Une majorité de suites cryptographiques faibles ou défaillantes utilisées en particulier avec TLS 1.0.

    • Toujours pas de gestion, d'après vos copies d'écran, de SSLCertficateChainFile.
      Suivez le conseil et contactez votre fournisseur (SSL provider) ou bien rangez votre proxy et configurez Apache correctement.
      Traitez déjà tout cela avant de penser à configurer un revers.
      Ce qu'il faut commencer par changer c'est votre compréhension de tout cela.



  • Merci de votre réponse je la trouve brusque même si j'ai conscience que ce concept de ssl est flou entre les différents entités composant le réseau.

    le reverse proxy est en place depuis 10 ans car il y a plusieurs serveurs web derrières. Le reverse proxy n'est en aucun cas présent pour la sécurité il distribue les requettes aux serveurs.

    Merci
    Cordialement
    Eric



  • Je comprend que la réponse vous semble brutale. Mais il faut finir par dire les choses carrément tant vous êtes embourbé. Une configuration SSL en ce qui concerne les certificats c'est par exemple cela :

                   SSLCertificateFile /etc/ssl/certs/cloud-ccnet-fr.cer
    		SSLCertificateKeyFile /etc/ssl/private/cloud.pem
    	#   Server Certificate Chain:
    	#   Point SSLCertificateChainFile at a file containing the
    	#   concatenation of PEM encoded CA certificates which form the
    	#   certificate chain for the server certificate. Alternatively
    	#   the referenced file can be the same as SSLCertificateFile
    	#   when the CA certificates are directly appended to the server
    	#   certificate for convinience.
    	SSLCertificateChainFile /etc/ssl/certs/RapidSSLSHA256CA-G3.cer
    
    	#   Certificate Authority (CA):
    	#   Set the CA certificate verification path where to find CA
    	#   certificates for client authentication or alternatively one
    	#   huge file containing all of them (file must be PEM encoded)
    	#   Note: Inside SSLCACertificatePath you need hash symlinks
    	#		 to point to the certificate files. Use the provided
    	#		 Makefile to update the hash symlinks after changes.
    	SSLCACertificatePath /etc/ssl/certs/
    	SSLCACertificateFile /etc/ssl/certs/RapidSSLSHA256CA-G3.cer
    

    J'ai laissé les commentaires. Une fois que cela fonctionne sur votre serveur Apache il suffit de reporter dans le reverse.
    Et encore une fois consulter des documentations pour comprendre le fonctionnement des certificats.
    Une dernière chose : Lets encrypt et ce qui va avec : fausse bonne idée. On peut acheter un vrai certificat pour 10 euros.



  • Bonjour,

    Je poste la réponse pour une personne qui en aurait besoin. Il fallait ajouter le certificat fullchain dans l'interface du reverse proxy au niveau certificat intermédiaire.
    Merci pour toute votre aide
    Cordialement


 

© Copyright 2002 - 2018 Rubicon Communications, LLC | Privacy Policy