para instalar habilitar configurar certificado apache ssl https localhost

apache - habilitar - instalar certificado ssl wamp



¿Cómo permito HTTPS para Apache en localhost? (12)

Acabo de intentar esto - Necesitaba probar algún código de desarrollo en mi localhost Apache en Windows . Esto fue WAAAY más difícil de lo que debería ser. Pero aquí están los pasos que lograron funcionar después de mucho hairpulling ...

Descubrí que mi instalación Apache viene con openssl.exe que es útil. Si no tiene una copia, deberá descargarla. Mi copia estaba en la carpeta Apache2/bin que es la referencia a continuación.

Pasos:

  1. Asegúrese de tener permisos de escritura en su carpeta de Apache conf
  2. Abra un símbolo del sistema en la carpeta Apache2/conf
  3. Tipo
    ../bin/openssl req -config openssl.cnf -new -out blarg.csr -keyout blarg.pem
  4. Puede dejar todas las preguntas en blanco, excepto:

    • Frase de contraseña PEM: una contraseña temporal como "contraseña"
    • Nombre común: el nombre de host de su servidor
  5. Cuando eso termine, escriba
    ../bin/openssl rsa -in blarg.pem -out blarg.key

  6. Genere su certificado autofirmado escribiendo:
    ../bin/openssl x509 -in blarg.csr -out blarg.cert -req -signkey blarg.key -days 365

  7. Abra el archivo conf/httpd.conf Apache y asegúrese de que el módulo SSL esté habilitado; no debe haber ningún hash al inicio de esta línea:
    LoadModule ssl_module modules/mod_ssl.so

  8. Algunas instalaciones Apache colocan la configuración de SSL en un archivo separado. De ser así, asegúrese de que se esté incluyendo el archivo SSL conf. En mi caso, tuve que descomentar esta línea:
    Include conf/extra/httpd-ssl.conf

  9. En la configuración de SSL httpd-ssl.conf tuve que actualizar las siguientes líneas:

    • Actualizar
      SSLSessionCache "shmcb:C:/Program Files (x86)/Zend/Apache2/logs/ssl_scache(512000)"
      a
      SSLSessionCache "shmcb:C:/Progra/~2/Zend/Apache2/logs/ssl_scache(512000)"
      (Los corchetes en la ruta confunden el módulo, por lo que debemos escapar de ellos)
    • DocumentRoot : establezca esto en la carpeta de sus archivos web
    • ServerName - el nombre de host del servidor
    • SSLCertificateFile "conf/blarg.cert"
    • SSLCertificateKeyFile "conf/blarg.key"
  10. Reinicie Apache.

  11. Intenta cargar https://localhost/ en tu navegador.

Espero que hayas llegado tan lejos. Siéntase libre de actualizar esta publicación con cualquier otra información útil.

(Capturas de pantalla cortesía de Neil Obremski y su útil article , aunque ahora bastante desactualizado).

Me pidieron que configurara HTTPS con un certificado autofirmado en Apache en localhost, pero ¿cómo hago eso? No tengo ninguna idea.


En realidad es bastante fácil, suponiendo que tenga una instalación de openssl a mano. (¿En qué plataforma estás?)

Suponiendo que esté en Linux / Solaris / Mac OS / x, el mini-HOWTO Apache SSL / TLS de Van tiene un excelente tutorial que no reproduciré aquí.

Sin embargo, el resumen ejecutivo es que debe crear un certificado autofirmado. Como está ejecutando Apache para localhost presumiblemente para desarrollo (es decir, no como un servidor web público), sabrá que puede confiar en el certificado autofirmado y puede ignorar las advertencias que su navegador le lanzará.


Es muy sencillo,

solo ejecuta los siguientes comandos

sudo a2enmod ssl sudo service apache2 restart sudo a2ensite default-ssl.conf

Eso es todo, has terminado.

Si desea forzar SSL (para usar https siempre), edite el archivo:

sudo nano /etc/apache2/sites-available/000-default.conf

y agrega esta línea

<VirtualHost *:80> . . . Redirect "/" "https://your_domain_or_IP/" . . . </VirtualHost>

luego reiniciar nuevamente

sudo service apache2 restart


Este HowTo para CentOS fue fácil de seguir y solo tomó unos 5 minutos: wiki.centos.org/HowTos/Https

No detallaré cada paso aquí, pero los pasos principales son:

1.) Instale el módulo de openssl para apache, si no está ya instalado

2.) Generar un certificado autofirmado

- En este punto, debería poder visitar https://localhost/ éxito

3.) Configurar un host virtual si es necesario


Esto debería ser trabajo Ubuntu, Mint similar con Apache2

Es una buena guía, así que después de esto

https://www.digitalocean.com/community/tutorials/how-to-create-a-ssl-certificate-on-apache-for-ubuntu-14-04

y dejando tu ssl.conf así o similares

<VirtualHost _default_:443> ServerAdmin [email protected] ServerName localhost ServerAlias www.localhost.com DocumentRoot /var/www SSLEngine on SSLCertificateFile /etc/apache2/ssl/apache.crt SSLCertificateKeyFile /etc/apache2/ssl/apache.key

puedes conseguirlo.

Espero esta ayuda para linuxer


Esto funcionó en Windows 10 con Apache24:

1 - Agregue esto en la parte inferior de C:/Apache24/conf/httpd.conf

Listen 443 <VirtualHost *:443> DocumentRoot "C:/Apache24/htdocs" ServerName localhost SSLEngine on SSLCertificateFile "C:/Apache24/conf/ssl/server.crt" SSLCertificateKeyFile "C:/Apache24/conf/ssl/server.key" </VirtualHost>

2 - Agregue los archivos server.crt y server.key en la carpeta C:/Apache24/conf/ssl . Vea otras respuestas en esta página para encontrar esos 2 archivos.

¡Eso es!


Otro método simple es usar Python Server en Ubuntu.

  1. Genera server.xml con el siguiente comando en terminal:

    openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes

    Nota: Asumiendo que tiene openssl instalado.

  2. Guarde el código debajo en un archivo llamado simple-https-server.py en cualquier directorio que desee ejecutar el servidor.

    import BaseHTTPServer, SimpleHTTPServer import ssl httpd = BaseHTTPServer.HTTPServer((''localhost'', 4443), SimpleHTTPServer.SimpleHTTPRequestHandler) httpd.socket = ssl.wrap_socket (httpd.socket, certfile=''./server.pem'', server_side=True) httpd.serve_forever()

  3. Ejecute el servidor desde la terminal:

    python simple-https-server.py

  4. Visite la página en:

    https://localhost:4443

Notas adicionales :

  1. Puede cambiar el puerto en el archivo simple-https-server.py en línea

    httpd = BaseHTTPServer.HTTPServer((''localhost'', 4443), SimpleHTTPServer.SimpleHTTPRequestHandler)

  2. Puede cambiar localhost a su IP en la misma línea de arriba:

    httpd = BaseHTTPServer.HTTPServer((''10.7.1.3'', 4443), SimpleHTTPServer.SimpleHTTPRequestHandler)

    y acceda a la página en cualquier dispositivo conectado a su red. Esto es muy útil en casos como "tienes que probar HTML5 GeoLocation API en un dispositivo móvil, y Chrome restringe la API solo en conexiones seguras".

Gist: https://gist.github.com/dergachev/7028596

http://www.piware.de/2011/01/creating-an-https-server-in-python/


Para aquellos que usan macOS esta es una gran guía https://getgrav.org/blog/macos-sierra-apache-multiple-php-versions para configurar su entorno de desarrollo web local. En su tercera parte https://getgrav.org/blog/macos-sierra-apache-ssl Andy Miller explica cómo configurar apache con un certificado autofirmado:

Este es el comando clave:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout server.key -out server.crt

Pero hay algunos pasos que debes seguir, así que échale un vistazo y ¡buena suerte! ;)


Para proteger la seguridad de la información que se envía desde y hacia su servidor web, es una buena idea habilitar el cifrado de la comunicación entre los clientes y el servidor. Esto a menudo se llama SSL .

Así que configuremos HTTPS con un certificado autofirmado en Apache2. Voy a enumerar los pasos que debes seguir:

  • Instale apache2 web-server en su máquina. Para la máquina Linux abra la terminal y escriba

sudo apt-get install apache2

  • Después de una instalación exitosa, verifique el estado del servicio apache2 ejecutando el comando

sudo service apache2 status

Debería salir

  • Navega al navegador y escribe

http: // localhost: 80

Verifique que obtenga la página predeterminada para apache2 como esta.

  • Para encriptar una conexión web, necesitamos un certificado de CA (autoridad de certificación) o podemos usar certificados autofirmados. Vamos a crear un certificado autofirmado usando el siguiente comando.

openssl req -x509 -newkey rsa: 2048 -keyout mykey.key -out mycert.pem -days 365 -nodes

Complete la información como se muestra a continuación.

mykey.key y mycert.pem deberían crearse en su actual directorio de trabajo.

  • Sería bueno que moviéramos certificados y claves en un lugar común y sería fácil para el servidor web apache2 encontrarlos. Entonces, ejecutemos los siguientes comandos

sudo cp mycert.pem / etc / ssl / certs

sudo cp mykey.key / etc / ssl / private

  • Vamos a habilitar el modo SSL en tu servidor

sudo a2enmod ssl

Debería salir así

  • Vamos a configurar apache2 para usar el certificado autofirmado y la clave que hemos generado anteriormente.

sudo vi /etc/apache2/sites-available/default-ssl.conf

Encuentre estas dos líneas y reemplácelas con sus rutas cert y key.

Inicial

Final

  • Habilitar el sitio

cd / etc / apache2 / sites-available /

sudo a2ensite default-ssl.conf

  • Reinicie el servicio apache2

sudo service apache2 restart

  • Verifique el servidor web apache2 en HTTPS. Abra su navegador de nuevo y escriba

https://localhost/

Debería mostrar algo como esto con una advertencia de que la página que está a punto de ver no es segura porque hemos configurado el servidor con un certificado autofirmado.

  • Enhorabuena por haber configurado su apache2 con punto final HTTPS, ahora haga clic en avanzado -> agregar excepción -> confirmar excepción de seguridad , verá la página predeterminada nuevamente.


Windows + Apache 2.4, por ejemplo:

  1. elimine el comentario de ssl_module en su archivo httpd.conf .

    LoadModule ssl_module modules/mod_ssl.so

  2. escucha el puerto 443 al igual que el puerto 80 en tu archivo httpd.conf .

    Listen 80 Listen 443

  3. descomentar Incluir hosts virtuales en su archivo httpd.conf .

    # Virtual hosts Include conf/extra/httpd-vhosts.conf

  4. agrega VirtualHost en tu conf/extra/httpd-vhosts.conf

    <VirtualHost _default_:443> DocumentRoot "D:/www" #your site directory path ServerName localhost #ServerAlias localhost.com localhost2.com SSLEngine on SSLCertificateFile "${SRVROOT}/conf/ssl/server.crt" SSLCertificateKeyFile "${SRVROOT}/conf/ssl/server.key" <Directory "D:/www"> Options -Indexes +FollowSymLinks +ExecCGI AllowOverride All Require all granted </Directory> </VirtualHost>

solo las líneas de número de puerto 443 y SSL...... son diferentes de la configuración http normal.

guarde su archivo de configuración y reinicie el servicio apache. entonces puedes visitar https://localhost/

El navegador web le advertirá que no es seguro por primera vez, solo elija continuar.


Yo uso ngrok ( https://ngrok.com/ ) para esto. ngrok es una herramienta de línea de comandos y crea un túnel para localhost. Crea conexiones tanto http como https. Después de descargarlo, se debe ejecutar el siguiente comando:

ngrok http 80

(En la versión 2, la sintaxis es: ngrok http 80. En la versión 2, cualquier puerto se puede tunelizar).

Después de unos segundos, dará dos URL:

http://a_hexadecimal_number.ngrok.com https://a_hexadecimal_number.ngrok.com

Ahora, ambas URL apuntan al localhost.


aquí es la forma más simple de hacer esto

primero copie estos archivos server.crt y server.key (encuentre en el archivo adjunto) en su directorio apache / conf / ssl

luego abra el archivo httpd.conf y agregue la siguiente línea

Listen 80 Listen 443 NameVirtualHost *:80 NameVirtualHost *:443 <VirtualHost *:443> DocumentRoot "d:/wamp/www" #your wamp www root dir ServerName localhost SSLEngine on SSLCertificateFile "d:/wamp/bin/apache/Apache2.4.4/conf/ssl/server.crt" SSLCertificateKeyFile "d:/wamp/bin/apache/Apache2.4.4/conf/ssl/server.key" </VirtualHost>