Le certificat SSL auto-signé peut-il être renouvelé? Comment?

18

Je suis relativement nouveau dans les certificats SSL et je voudrais savoir si un certificat auto-signé que j'utilise pour HTTPS peut être renouvelé pour prolonger sa date d'expiration sans que tous les clients du site n'aient à passer par le processus "autoriser l'exception" qu'ils ont à faire lors de leur première visite sur le site ou, comme lors de la délivrance d'un nouveau certificat auto-signé créé à partir de zéro.

J'ai trouvé le didacticiel suivant montrant comment renouveler un certificat auto-signé à l'aide de opensslmais je n'ai pas pu l'utiliser de telle sorte que mon navigateur l'accepte silencieusement sans afficher cet écran d'avertissement "Site non approuvé":

  # cd /etc/apache2/ssl
  # openssl genrsa -out togaware.com.key 1024
  # chmod 600 togaware.com.key
  # openssl req -new -key togaware.com.key -out togaware.com.csr
    AU
    ACT
    Canberra
    Togaware
    Data Mining
    Kayon Toga
    [email protected]
    (no challenge password)
  # openssl x509 -req -days 365 -in togaware.com.csr \
            -signkey togaware.com.key -out togaware.com.crt
  # mv apache.pem apache.pem.old
  # cp togaware.com.key apache.pem 
  # cat togaware.com.crt >> apache.pem 
  # chmod 600 apache.pem
  # wajig restart apache2

Ma configuration est à peu près celle décrite dans cette réponse et j'utilise des fichiers CRT et KEY (de ce tutoriel ) au lieu d'un fichier PEM, alors j'ai peut-être foiré quelque chose en essayant de l'appliquer à mon cas.

Là encore, j'ai trouvé de nombreuses entrées de forum suggérant qu'il est tout à fait impossible de renouveler un certificat auto-signé et je dois en créer un nouveau à partir de zéro.

Toute aide serait appréciée ... ou cette question conviendrait-elle mieux à /server// ou /superuser// ?

FriendFX
la source
7
Plutôt que de voter pour cette question, veuillez donner des conseils spécifiques sur ce qu'il faut améliorer.
FriendFX

Réponses:

23

Par définition, un certificat auto-signé ne peut être approuvé que par une approbation directe , c'est-à-dire ce que les navigateurs Web comme Firefox affichent comme le processus «autoriser l'exception». Un certificat très spécifique, jusqu'au dernier bit, est déclaré «approuvé». Rien ne peut être modifié dans un certificat sans sortir de ce modèle, et notamment la date d'expiration, qui fait partie des données contenues dans le certificat.

Vous pouvez imaginer le renouvellement comme une sorte de chose familiale: lorsqu'un certificat est "renouvelé", il est en fait remplacé par un frère plus jeune. Les clients acceptent le nouveau certificat en silence car il partage la même ascendance que le certificat précédent. Les certificats auto-signés sont des orphelins intrinsèques: ils n'ont pas d'ascendance. Par conséquent, pas de frère, ni de transmission automatique.

(En dehors de cette histoire ancestrale, le renouvellement est la création d'un nouveau certificat. Les certificats sont immuables . Le "renouvellement" est une façon de penser la relation entre l'ancien et le nouveau certificat.)

Si vous souhaitez pouvoir effectuer des renouvellements silencieux, vous avez besoin d'un certificat d' autorité de certification auto-signé . Vous émettez des certificats pour vos serveurs à partir de cette autorité de certification et vous demandez à vos clients de faire confiance à cette autorité de certification. Bien sûr, cela demande beaucoup: une autorité de certification à laquelle vous faites confiance est une autorité de certification qui peut truquer tout Internet à vos yeux. Fondamentalement, cette solution consiste à créer et à maintenir votre propre autorité de certification, ce qui représente une responsabilité et un travail.


La prochaine fois que vous produirez un certificat auto-signé, faites-le durer longtemps. Les certificats expirent principalement pour que la révocation fonctionne (l'expiration des certificats empêche la CRL de croître indéfiniment). Pour un certificat auto-signé, il n'y a pas de révocation, vous pouvez donc rendre le certificat valide pendant 20 ans. Ou pendant 2000 ans, d'ailleurs (bien que le problème de l' année 2038 puisse apparaître à un moment donné, selon le logiciel client).

Tom Leek
la source
Merci pour la réponse détaillée! Je me demande cependant ce que cela signifie par rapport au tutoriel auquel j'ai lié. Est-ce uniquement pour les certificats CA auto-signés ? Je suppose que j'espérais juste (et pensais après avoir lu le tutoriel) qu'il y avait un moyen de lire la clé privée de l'ancienne et d'en créer une nouvelle, "compatible" ... une qui ressemble à un "enfant" plutôt qu'à un "orphelin". Belle analogie, au fait!
FriendFX
@FriendFX - Ce que vous voulez n'est pas possible. Tom a raison, le renouvellement génère un nouveau certificat.
Ramhound
@Ramhound - Je comprends. La seule question ouverte est: quel est le but de ce tutoriel alors?
FriendFX
@FriendFX - Il a été écrit par un gars au hasard sur Internet simplement parce qu'ils ont un blog ne signifie pas qu'ils comprennent de quoi ils parlent. L'auteur n'explique tout simplement pas que le tutoriel aboutira à un nouveau certificat
Ramhound
3
@FriendFX Oui, ce didacticiel ne fonctionnera que pour les certificats d'autorité de certification auto-signés. Si vous utilisez la même paire de clés et le même objet, vous pouvez créer plusieurs certificats d'autorité de certification qui satisfont chacun en tant qu'émetteur valide pour les certificats émis; ces certificats peuvent même être émis par différentes autorités de certification parentes, ce qui est appelé "cross-chaining".
Calrion
3

Réponse courte: Non.

Faire confiance à un certificat auto-signé, c'est comme faire confiance à un passeport individuel au lieu du pays qui délivre ce passeport. Si vous obtenez un nouveau passeport, il ne sera pas automatiquement approuvé par quelqu'un qui a fait confiance à l'ancien, en particulier parce que c'est une chose différente avec des attributs différents (numéro de passeport, dates, etc.); rien ne permet à une personne faisant expressément confiance à l'ancien passeport de savoir que le nouveau passeport peut être fiable.

Liam Dennehy
la source
0

Si vous utilisez des certificats auto-signés (je recommande d'utiliser xca sur Windows), vous pouvez simplement définir la date d'expiration sur 7999-12-31 (c'est la durée maximale pour UTC) et la date initiale sur 1970-01-01 (pour compatibilité avec l'heure / la date mal configurée sur les PC)

H3LL0
la source