Comment créer facilement un certificat SSL et le configurer dans Apache2 sous Mac OS X?


34

J'aimerais utiliser mon Mac OS X avec https pour les tests de développement local. Comment faire en sorte que Apache2 réponde facilement à ssl, comme le propose le test - je ne veux pas de vrai certificat, mais un faux pour que le travail local https fonctionne

Réponses:


58

Pour les tests de développement local, un certificat auto-signé est adéquat. Vous pouvez en générer un avec le kit OpenSSL comme ceci:

Générer la clé privée:

openssl genrsa -des3 -out server.key 1024

sortie:

Génération d'une clé privée RSA, module long 1024 bits
.................................................. ....... ++++++
........ ++++++
e est 65537 (0x10001)
Entrez la phrase de passe PEM:
Vérification du mot de passe - Entrez la phrase de passe PEM:

entrez une phrase secrète pour votre clé privée.

Génération de la CSR (demande de signature de certificat):

openssl req -new -key server.key -out server.csr

il demandera des détails comme celui-ci:

Nom du pays (code à 2 lettres) [GB]:
Nom de l'État ou de la province (nom complet) [Berkshire]:
Nom de localité (par exemple, ville) [Newbury]:
Nom de l'organisation (par exemple, société) [My Company Ltd]:
Nom de l'unité organisationnelle (par exemple, section) []:
Nom commun (par exemple, votre nom ou le nom d'hôte de votre serveur) []:
Adresse e-mail []:
Veuillez saisir les attributs "supplémentaires" suivants
à envoyer avec votre demande de certificat
Un mot de passe de défi []:
Un nom de société facultatif []:

c'est assez simple, le nom commun est le nom d'hôte de votre serveur, comme indiqué entre parenthèses.

Générer le certificat auto-signé:

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Configuration de SSL dans httpd.conf pour Apache:

SSLEngine sur
SSLCertificateFile /path/to/generated/server.crt
SSLCertificateKeyFile /path/to/generated/server.key

(remplacez le chemin approprié par le chemin de votre certificat et de votre clé)

Redémarrez Apache :

apachectl restart

Apache vous demandera la phrase secrète de votre clé. Si vous pensez que le serveur sera souvent arrêté, vous souhaiterez peut-être supprimer la phrase secrète de la clé afin d'éviter de la saisir à chaque fois. Sinon, ne vous en faites pas. Si tel est le cas, terminez cette étape après l'étape 2 ( Génération du CSR ):

cp server.key server.key.copy
openssl rsa -in server.key.copy -out server.key

c'est presque ennuyeux pour moi. Lorsque j'essaie d'accéder à une page de mes Rails en utilisant http, la page existe, mais lorsque j'utilise https, la page non trouvée est renvoyée. Savez-vous ce que pourrait être?
— Daniel Cukier

Avez-vous modifié votre serveur virtuel pour qu'il utilise https sur le port 443? Il devrait ressembler à ceci: <VirtualHost 192.168.1.100:443> SSLEngine activé, etc ... </ VirtualHost>
— John T

Merci pour cela, un certificat SSL fonctionne bien sur Lion avec cela. Je pensais juste ajouter quelques points qui devraient vous faciliter la vie. Apache d'Apple a un fichier httpd-ssl.conf qui est déjà configuré pour regarder dans / private / etc / apache2, donc si vous mettez vos fichiers serveur. * À cet emplacement, il y a un fichier de moins à éditer. En outre, vous devez éditer httpd.conf car la ligne qui inclut httpd-ssl.conf est commentée par défaut. Enfin, 365 jours, c'est un peu court, vous voudrez peut-être une date d'expiration plus longue ou vous le ferez encore l'année prochaine (j'ai utilisé 3650)
— GordonM

Si quelqu'un a déjà eu des problèmes comme moi, vous serez heureux de trouver ce lien, qui explique comment configurer correctement virtualhost
— Relequestual

Si c'est votre machine de développement, vous voudriez probablement avoir une clé privée sans mot de passe: openssl rsa -in server.key -out server.nopass.key
— Aldekein
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.