meta data de esta página
  •  

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
aplicaciones:apache:ssl [2014/01/07 22:26] – editor externo 127.0.0.1aplicaciones:apache:ssl [2023/01/18 14:35] (actual) – editor externo 127.0.0.1
Línea 1: Línea 1:
 +{{tag> apache ssl certificados https}}
 +===== Implementación de Cetificados SSL en Apache =====
 +
 +==== Generar certificados autofirmados ====
 +Por ejemplo para generar unos certificados autofirmados para nextcloud 
 +
 +Si no tenemos el módulo ssl lo instalamos <sxh>yum install mod_ssl</sxh>
 +
 +Creamos un directorio específico para almacenar la clave privada
 +<sxh>sudo mkdir /etc/ssl/private
 +sudo chmod 700 /etc/ssl/private/</sxh>
 +<sxh>sudo openssl req -x509 -days 365 -nodes -newkey rsa:2048 -keyout /etc/ssl/private/nextcloud.key -out /etc/ssl/certs/nextcloud.crt</sxh>
 +contestamos a las preguntas del asistente y se generaran nuestros certificados privados.
 +<note>Hay que tener en cuenta que cuando nos pregunte el **Common Name** poner el nombre de dominio asociado a nuestro servidor o la ip en caso de no tener dominio</note>
 +
 +Para tener una negociación de certificados fuerte  **Perfect Forward Secrecy** necesitamos crear un grupo DH (Diffie-Hellman group) y añadirlo a nuestro certificado. 
 +Para ello  ejecutamos <sxh>sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048 </sxh> y procedemos a añadirlo a nuestro certificado autofirmado
 +<sxh>cat /etc/ssl/certs/dhparam.pem | sudo tee -a /etc/ssl/certs/nextcloud.crt</sxh>
 +
 +==== Configurar Apache para SSL ====
 +
 +
 +Editamos el fichero de configuración SSL de nuestro servidor
 +
 +Tendrás que editar/crear el fichero de configuración **/etc/httpd/conf.d/ssl.conf** o bien editar el fichero de configuración de tu Virtual Host. 
 +
 +<sxh>
 +##Fichero ejemplo de https://www.sugeek.co/instalar-certificado-ssl-en-centos-7/
 +Listen 443
 +NameVirtualHost *:443
 +SSLPassPhraseDialog  builtin
 +SSLSessionCacheTimeout  300
 +SSLRandomSeed startup file:/dev/urandom  256
 +SSLRandomSeed connect builtin
 +SSLCryptoDevice builtin
 +SSLStrictSNIVHostCheck off
 +
 +<VirtualHost *:443>
 +DocumentRoot /var/www/html/misitio
 +ServerName www.misitio.com
 +ServerAlias misitio.com
 +SSLEngine on
 +SSLProtocol all -SSLv2 -SSLv3
 +SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
 +SSLCertificateFile /etc/letsencrypt/live/www.misitio.com/cert.pem
 +SSLCertificateKeyFile /etc/letsencrypt/live/www.misitio.com/privkey.pem
 +ErrorLog logs/ssl_error_log
 +TransferLog logs/ssl_access_log
 +LogLevel warn
 +<Files ~ “\.(cgi|shtml|phtml|php3?)$”>
 +SSLOptions +StdEnvVars
 +</Files>
 +SetEnvIf User-Agent “.*MSIE.*” \
 +nokeepalive ssl-unclean-shutdown \
 +downgrade-1.0 force-response-1.0
 +CustomLog logs/ssl_request_log \
 +“%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \”%r\” %b”
 +</VirtualHost>
 +</sxh>
 +
 +<note>El comando "apache2ctl -t" te puede ayudar para detectar posibles errores de sintaxis en la configuración del archivo del virtualhost</note>
 +
 +Reiniciamos Apache para que se apliquen los cambios. 
 +<sxh>systemctl restart httpd</sxh>
 +
 +=== Redireccionar el tráfico http a https ===
 +Podrías redirigir todo el tráfico de http (normal) a https (seguro) mediante una configuración en el virtual host para el puerto 80. Para ello creamos un fichero de configuración 
 +<sxh>sudo vi /etc/httpd/conf.d/non-ssl.conf</sxh>
 +Añadimos las siguientes línas al fichero que hemos creado para redireccionar el tráfico 
 +<sxh>
 +<VirtualHost *:80>
 +        ServerName www.example.com
 +        Redirect "/" "https://www.example.com/"
 +</VirtualHost>
 +</sxh>
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +===== Referencias =====
 +  * https://www.digitalocean.com/community/tutorials/how-to-create-an-ssl-certificate-on-apache-for-centos-7
   * http://terminus.ignaciocano.com/k/2011/06/14/configurar-apache-para-servir-conexiones-seguras/   * http://terminus.ignaciocano.com/k/2011/06/14/configurar-apache-para-servir-conexiones-seguras/
   * http://terminus.ignaciocano.com/k/2012/05/10/forzar-el-uso-de-sslhttps-de-un-directorio-en-apache2-mediante-htaccess-y-mod_rewrite/   * http://terminus.ignaciocano.com/k/2012/05/10/forzar-el-uso-de-sslhttps-de-un-directorio-en-apache2-mediante-htaccess-y-mod_rewrite/