Faites confiance à un certificat PEM auto-signé

23
  1. J'ai configuré un serveur proxy avec SSL à l'aide d'un certificat PEM. Maintenant, il y a quelques machines à moi que je voudrais faire confiance à ce certificat automatiquement (sans que le navigateur Web se plaint). Comment puis-je installer un certificat PEM sur chaque machine?

  2. De plus, quoi de plus recommandé: générer un certificat auto-signé ou concaténer le certificat snakeoil?

Teresa e Junior
la source

Réponses:

10

Les navigateurs ont une liste de certificats d '«autorité de certification» (CA) de confiance. Si le certificat d'un serveur est signé par l'un de ces certificats CA et correctement formé, vous n'obtiendrez pas l'avertissement SSL.

De nombreux navigateurs sont livrés avec de nombreux certificats d'autorité de certification courants tels que Verisign, Thawte, etc. La plupart des navigateurs vous permettent d'importer une nouvelle autorité de certification dans cette liste d'autorités de certification de confiance.

Comme pour la création de votre propre certificat de serveur auto-signé, vous pouvez créer votre propre certificat d'autorité de certification auto-signé. Vous pouvez ensuite l'utiliser pour signer votre certificat de serveur. Si votre autorité de certification n'est pas fournie par une entreprise bien connue, ce qui ne serait pas le cas si vous en avez fait une, elle devra être explicitement importée côté serveur.

Je l'ai déjà xcafait auparavant. Il a des modèles pour les autorités de certification et les serveurs HTTP. La procédure est la suivante:

  • Créez une clé privée pour votre CA
  • Créer une autorité de certification auto-signée à l'aide de cette clé à l'aide du modèle "CA"
  • Créez une clé privée pour votre serveur proxy
  • Créez une "demande de signature de certificat" (CSR) à l'aide de la deuxième clé, référençant l'autorité de certification que vous venez de créer.
  • «Signez» le CSR et vous obtiendrez le certificat de serveur proxy, qui fait référence à votre propre autorité de certification.

Vous devrez ensuite exporter (sous forme de fichier si vous utilisez xca) le certificat CA (mais ne pas inclure la clé privée bien sûr). Un .pemsera généré mais vous pouvez changer l'extension en .crt. Lorsqu'un utilisateur clique dessus, il sera proposé de l'installer sur Firefox et Internet Explorer, et éventuellement d'autres navigateurs majeurs. En ce qui concerne l'installation automatique de ce .crt, vous pouvez:

  • utiliser la stratégie de groupe sur IE
  • diriger les utilisateurs vers une page d'introduction leur demandant de télécharger / installer le .crt s'ils veulent éviter les avertissements.

Vous pouvez ensuite utiliser les fonctions d'exportation sur le certificat de serveur HTTP (exporter à la fois la clé privée et le certificat côté serveur) pour installer votre serveur proxy.

LawrenceC
la source
17
  1. Copiez votre certificat /etc/ssl/certssur le système cible. Créez ensuite un lien symbolique à l'aide du hachage généré par la commande en openssl x509 -noout -hash -in ca-certificate-fileremplaçant ca-certificate-filepar votre nom de certificat. Votre certificat doit ensuite être accepté par tous les programmes sans leur propre magasin de certificats.

    Pour les programmes avec leur propre magasin de certificats (navigateurs, Java et autres), vous devrez importer le certificat.

  2. Il est préférable de générer votre propre certificat auto-signé ou signé.

    Vous souhaiterez peut-être installer tinyca2et générer votre propre autorité de certification. Vous pouvez importer le certificat d'autorité de certification comme indiqué dans les étapes ci-dessus. Générez et déployez des certificats signés pour vos applications.

    Distribuez votre certificat CA aux utilisateurs qui doivent faire confiance à votre certificat. Vous devrez peut-être leur fournir des informations sur la façon d'importer le certificat. AVERTISSEMENT: s'ils le font, vous devenez une autre autorité de certification de confiance pour eux, alors sécurisez votre autorité de certification en conséquence.

    De nombreux outils peuvent également être configurés pour approuver les certificats auto-signés ou les certificats avec des autorités de certification non approuvées. Il s'agit généralement d'une action unique. Cela peut être plus sûr qu'en acceptant un certificat CA d'une autorité non sécurisée, seul le certificat accepté est approuvé.

BillThor
la source
Peut-on le préciser? Par exemple: l'hôte A envoie du courrier à l'hôte B et se plaint de ne pas pouvoir vérifier l'identité de B. Sur l'hôte B, nous avons créé un certificat auto-signé: /etc/ssl/certs/ssl-cert-snakeoil.pem(c'est ce que le paquet Debian ssl-certcrée pour vous). Nous le copions sur l'hôte A et l'appelons /etc/ssl/certs/host-B.pem(car cet hôte peut déjà en avoir un ssl-cert-snakeoil.pem). Ensuite, nous courons ln -s /etc/ssl/certs/host-B.pem $(openssl x509 -noout -hash -in /etc/ssl/certs/host-B.pem).
Alex Schröder
1
@ AlexSchröder que j'ai édité ci-dessus. Ils ne devraient pas importer votre certificat snakeoil, mais si vous avez configuré votre propre autorité de certification, il est raisonnable pour eux d'importer votre autorité de certification. Je n'ai pas encore identifié de problèmes de confiance entre les serveurs SMTP. La plupart des clients peuvent être invités à faire confiance aux certificats individuels.
BillThor
Merci. J'ai trouvé cette question lorsque je cherchais une explication pour une entrée de journal que je recevais. L'explication que j'ai trouvée était que, comme A enverra du courrier à B, A signalera qu'il n'était pas possible de vérifier l'identité de B.
Alex Schröder
Ceci est exactement ce que je cherchais! -- Merci! Maintenant, je peux utiliser davfs pour monter mon webDAV sécurisé sans autant d'agacement.
Wyatt8740
13

Sur Debian et Ubuntu , vous devez copier le certificate.pempour /usr/local/share/ca-certificates/certificate.crtet puis exécutez dpkg-reconfigure ca-certificates. /etc/ssl/certsest géré par cette commande.

Thom Wiggers
la source