¿Cómo crear fácilmente un certificado SSL y configurarlo en Apache2 en Mac OS X?

Respuestas:

58

Para pruebas de desarrollo local, un certificado autofirmado es adecuado. Puede generar uno con el kit OpenSSL así:

Generando la clave privada:

openssl genrsa -des3 -out server.key 1024

salida:

Generando clave privada RSA, módulo de 1024 bits de largo
.................................................. ....... ++++++
........ ++++++
e es 65537 (0x10001)
Ingrese la frase de paso PEM:
Verificación de contraseña: ingrese la frase de paso PEM:

ingrese una frase de contraseña para su clave privada.

Generando la CSR (solicitud de firma de certificado):

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

solicitará detalles como este:

Nombre del país (código de 2 letras) [GB]:
Nombre del estado o provincia (nombre completo) [Berkshire]:
Nombre de la localidad (por ejemplo, ciudad) [Newbury]:
Nombre de la organización (por ejemplo, empresa) [My Company Ltd]:
Nombre de la unidad organizativa (por ejemplo, sección) []:
Nombre común (por ejemplo, su nombre o el nombre de host de su servidor) []:
Dirección de correo electrónico []:
Ingrese los siguientes atributos 'extra'
para ser enviado con su solicitud de certificado
Una contraseña reto []:
Un nombre de empresa opcional []:

es bastante sencillo, el nombre común es el nombre de host de su servidor como se dice entre paréntesis.

Generando el certificado autofirmado:

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

Configuración de SSL en httpd.conf para Apache:

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

(reemplace la ruta apropiadamente con la ruta a su certificado y clave)

Reiniciar Apache :

apachectl restart

Apache le pedirá la frase de contraseña de su clave. Si cree que va a cerrar mucho el servidor, es posible que desee eliminar la frase de contraseña de la clave para evitar ingresarla cada vez. Si no, no te preocupes por eso. Si es así, complete este paso después del paso 2 ( Generar la CSR ):

cp server.key server.key.copy
openssl rsa -in server.key.copy -out server.key
John T
fuente
Casi me preocupa. Cuando intento acceder a alguna página en mis Rails, usando http, la página existe, pero cuando uso https, devuelve la página no encontrada. ¿Sabes lo que podría ser?
Daniel Cukier el
¿Cambiaste tu virtualhost para usar https en el puerto 443? Debería verse así: <VirtualHost 192.168.1.100:443> SSLEngine On, etc .... </VirtualHost>
John T el
Gracias por esto, obtuve un certificado SSL que funciona bien en Lion con esto. Solo pensé que agregaría un par de puntos, aunque eso debería facilitarle la vida. Apache de Apple tiene un httpd-ssl.conf que ya está configurado para buscar en / private / etc / apache2, por lo que si coloca los archivos de su servidor. *, Hay un archivo menos para editar. Además, debe editar httpd.conf porque la línea que incluye httpd-ssl.conf está comentada de manera predeterminada. Finalmente, 365 días es un poco corto, es posible que desee establecer una fecha de vencimiento más larga o lo volverá a hacer el próximo año (usé 3650)
GordonM
Si alguien ha tenido problemas como yo, estará encantado de encontrar este enlace, que explica cómo configurar el virtualhost con virtualhostx correctamente para trabajar con ssl yellowrobot.heroku.com/blog/2012/01/22/…
Relequestual
Si es su máquina de desarrollo, probablemente le gustaría tener una clave privada sin contraseña: openssl rsa -in server.key -out server.nopass.key
Aldekein