Générer un certificat SSL auto-signé pour Apache

10

Je veux créer un certificat auto-signé pour le site Web. L'ancien certificat a expiré il y a quelques jours. Il y a plus d'un NameVirtualHosts hébergé sur les systèmes. Les commandes que j'utilise pour créer un certificat proviennent d'un site Web de didacticiel et sont les suivantes:

openssl genrsa -des3 -out server.key 1024
openssl req -new -key server.key -out server.csr 
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Après cela dans le fichier ssl.conf, j'ai spécifié dans la section VirtualHost avec les anciens paramètres effectués par d'autres administrateurs

SSLEngine on
SSLCertificateFile <full_path>/server.crt
SSLCertificateKeyFile <full_path>/server.key

Au démarrage du serveur, je reçois les messages suivants dans le fichier journal et le serveur ne démarre pas.

Dans le fichier error_log, les messages sont

 [Mon Jun 01 23:52:46 2009] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)

Dans le fichier ssl_error_log, les messages sont

 [Mon Jun 01 23:52:46 2009] [error] Init: Private key not found
 [Mon Jun 01 23:52:46 2009] [error] SSL Library Error: 218710120 error:0D094068:asn1 encoding routines:d2i_ASN1_SET:bad tag
 [Mon Jun 01 23:52:46 2009] [error] SSL Library Error: 218529960 error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
 [Mon Jun 01 23:52:46 2009] [error] SSL Library Error: 218595386 error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error
 [Mon Jun 01 23:52:46 2009] [error] SSL Library Error: 218734605 error:0D09A00D:asn1 encoding routines:d2i_PrivateKey:ASN1 lib

J'apprécierais vraiment que quelqu'un puisse expliquer comment résoudre ce problème. J'ai essayé quelques autres sites Web de didacticiels sur les certificats SSL auto-signés, mais aucune des étapes qu'ils mentionnent ne fonctionne.

Saurabh Barjatiya
la source

Réponses:

21

Utilisez cette doublure pour générer le certificat et saisir un seul fichier

openssl req -new -x509 -days 999 -nodes -out apache.pem -keyout apache.pem

Ensuite, la seule configuration dont vous aurez besoin est

SSLEngine on
SSLCertificateFile /etc/apache2/apache.pem
hayalci
la source
vous voulez dire ajouter au-dessus de la ligne sslengine on et sslcertificatefile / etc / ssh
Rajat
c'est pour la configuration apache, pas ssh.
hayalci
1
Cette commande laissera la clé privée en clair sur le système de fichiers, contrairement à la commande d'origine de l'OP. Omettre l' -nodesoption de crypter la clé à l'aide de Triple-DES. (La phrase secrète de la clé devra bien sûr être fournie au démarrage du serveur.) La reqcommande OpenSSL ne prend pas en charge la génération de clés plus fortement cryptées, mais peut utiliser des clés fortement cryptées précédemment générées.
Calrion
4

Cela peut sembler un peu trivial, mais vérifiez l'autorisation sur votre fichier .key

Jeff Hengesbach
la source
+1 Parfois, les choses insignifiantes sont les moins pensées.
Burkhard
0

Vous pouvez utiliser openssl req -newkey rsa:1024 -keyout privkey.pempour enregistrer la clé SSL lors de sa génération, au cas où la génération de clé ne serait pas tout à fait correcte.

davenpcj
la source