ssl ssl-certificate wampserver apache2.4

Instalación SSL en el servidor wamp: error en httpd-ssl.conf



ssl-certificate wampserver (7)

@RiggsFolly: algunos pequeños errores / errores tipográficos / adiciones en su tutorial. A continuación se utiliza en combinación con WAMPServer 2.5 64 bits (Apache 2.4.9 y PHP 5.5.12) en Windows 7 SP1 64 bits:

-httpd-vhosts.conf se encuentra en extra / httpd-vhosts.conf

-cuando intente editar su archivo de hosts asegúrese de desactivar cualquier virusscanner. Algunos de ellos bloquean el acceso al archivo de hosts.

-Asegúrese de abrir su editor de texto como administrador al editar su archivo de hosts o de lo contrario recibirá un error al intentar guardar.

-no olvides eliminar # al comienzo de la línea de host si hay alguna

-si usa WAMPServer de 64 bits, asegúrese de descargar la versión de 64 bits de OpenSSL

-el paso openssl genrsa -out website / server.key 2048 crea un archivo server.key y no un privkey.pem!

-archivo / wamp / bin / apache / apachex.yz / conf / httpd-ssl.conf se encuentra en / wamp / bin / apache / apachex.yz / conf / extra / httpd-ssl.conf (tal vez esto depende del servidor WAMPServer versión)

-Tuve que usar diferentes puertos para http (80-> 8080) y https (443-> 444) ya que estos puertos fueron utilizados por creo que Skype. Cuando use puertos diferentes, asegúrese de usarlos en todas partes donde vea 80 o 443 en este tutorial

-También tuve que habilitar socache_shmcb_module. El "httpd -t" también mencionó esto.

Estoy tratando de configurar SSL en el host local. He seguido http://madurad.wordpress.com/2014/04/25/redirect-http-to-https-with-wamp-server/ y muchos otros, pero no he podido obtenerlos. éxito. Me atasqué en la sintaxis de httpd-ssl.conf. mi servidor apache se apaga cuando configuro el

<Directory "c:/wamp/www/"> Options Indexes FollowSymLinks AllowOverride all Require all granted SSLOptions +StdEnvVars </Directory>

He probado muchos otros como

<Directory "c:/wamp/www/"> SSLOptions +StdEnvVars </Directory>

lo que es problema no puede obtener ...


Antes de todo:

1). Apague WAMP y continúe con el C:/wamp/scripts/config.inc.php desde la matriz libeay32.dll , ssleay32.dll , líneas 133,139

2) .Instale OpenSSL desde el sitio oficial, preste atención a la versión de su OS x64 o no.

Símbolo del sistema:

3) cd C:/wamp/bin/apache/apache2.4.23/bin

4) openssl req -new > localhost.csr

5) openssl rsa -in privkey.pem -out localhost.key

6) openssl x509 -in localhost.csr -out localhost.crt -req -signkey localhost.key -days 365 -sha256 -extfile v3.ext

Actualización: desde Chrome 58 tendremos que proporcionar el Subject Alternative Name . Este nombre lo podemos obtener del archivo de extensión v3.ext :

authorityKeyIdentifier=keyid,issuer basicConstraints=CA:FALSE keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment subjectAltName = @alt_names [alt_names] DNS.1 = 127.0.0.1 DNS.2 = localhost

Muy importante en Nombre común para insertar ''localhost''

7) .Grab localhost.key y localhost.crt y C:/wamp/bin/apache/apache2.4.23/conf/key (seguro, antes de crear el directorio apropiado)

Configuración:

8) .enable en C:/wamp/bin/apache/apache2.4.23/bin/php.ini y

C:/wamp/bin/php/php5.6.25/php.ini extension=php_openssl.dll

9) .procedir a C:/wamp/bin/apache/apache2.4.23/conf/httpd.conf y descomentar:

LoadModule ssl_module modules/mod_ssl.so ,

Include conf/extra/httpd-ssl.conf ,

Include conf/extra/httpd-vhosts.conf ,

LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

10) vaya a C:/wamp/bin/apache/apache2.4.23/conf/extra/httpd-ssl.conf

y hacer cambios:

SSLSessionCache "shmcb:c:/wamp/bin/apache/apache2.4.23/logs/ssl_scache(512000)" ,

SSLSessionCacheTimeout 300 ,

VirtualHost _default_:443 ,

DocumentRoot "c:/wamp/www/" ,

ServerName localhost:443 ,

ErrorLog "c:/wamp/bin/apache/apache2.4.23/logs/ssl_error.log"

, (crear archivo si no existe)

TransferLog "c:/wamp/bin/apache/apache2.4.23/logs/access.log" ,

SSLCertificateFile "c:/wamp/bin/apache/apache2.4.23/conf/key/localhost.crt" ,

SSLCertificateKeyFile "c:/wamp/bin/apache/apache2.4.23/conf/key/localhost.key" ,

<Directory "c:/wamp/www/"> SSLOptions +StdEnvVars Options Indexes FollowSymLinks MultiViews AllowOverride All Require local </Directory>

,

CustomLog "c:/wamp/bin/apache/apache2.4.23/logs/ssl_request.log"

Manejo de certificados:

11) .presiona Win + R e inserta ''certmgr.msc'', importa servercert.crt en ''Autoridades certificadas raíz de confianza''

12) Compruebe que su servidor en el símbolo del sistema ''httpd -t'' debería ser ''Sintaxis correcta''

13) Inicie Wamp y proceda a vincular https://localhost

Espero que esto ayude

Nota: lea este artículo sobre el comportamiento de Mozilla:

https://blog.mozilla.org/security/2014/09/23/phasing-out-certificates-with-sha-1-based-signature-algorithms/


Es necesario activar el módulo LoadModule socache_shmcb_module modules / mod_socache_shmcb.so en el archivo httpd.conf en wampserver 2.5. Si no apache lanza el siguiente mensaje:

AH00526: Error de sintaxis en la línea 75 de C: /wamp/bin/apache/apache2.4.9/conf/extra/httpd-ssl.conf: SSLSessionCache: caché de sesión ''shmcb'' no compatible (nombres conocidos:). Tal vez necesite cargar el módulo de socache apropiado (mod_socache_shmcb?).


Si tiene el error, algo como esto:

No se pueden cargar los módulos / mod_ssl.so en el servidor: no se pudo encontrar el módulo especificado.

  1. Puede intentar buscar libeay32.dll en su carpeta de wamp, probablemente lo encuentre en {carpeta de wamp} / bin / php / php {versión 7} /

  2. Copie libeay32.dll y ssleay32.dll y péguelos en {carpeta de wamp} / bin / apache / apache {versión 2.x} / bin / Y {carpeta de wamp} / bin / php / php {versión 5.x}. ASEGÚRESE de hacer una copia de seguridad de todo lo que esté colocando.

  3. ejecute httpd -t y pruebe la sintaxis

NOTA: Creo que se debe al error en la parte apache openssl para wamp 3.0.6. Afortunadamente en la carpeta php7 esos dlls son compatibles con apache y php5.


Si tienes el error:

No se pueden cargar los módulos / mod_ssl.so en el servidor: el sistema operativo no puede ejecutar% 1

Entonces tienes que :

  1. Instale Win32 OpenSSL aquí http://slproweb.com/products/Win32OpenSSL.html
  2. Copie / pegue libeay32.dll, ssleay32.dll en su carpeta wamp php bin (C: / wamp64 / bin / php / php5.6.19)
  3. Reiniciar apache

Nota: Probado en el servidor Wamp 3


@RiggsFolly : el certificado autofirmado con clave podría generarse fácilmente, por ejemplo, aquí ... http://www.selfsignedcertificate.com/ , por lo que podría comenzar el tutorial desde el paso 4 (también tenía estándar: 80 servidores virtuales en ejecución) .

De todos modos, algunas cosas mencionadas ya estaban habilitadas en la instalación predeterminada de WAMP (supongo que cambia de una versión a otra), pero el resto me ayudó mucho. Y en realidad faltaba una cosa ... También tuve que descomentar la siguiente línea en "httpd.conf"

LoadModule socache_shmcb_module modules/mod_socache_shmcb.so


Cómo configurar WAMPServer para usar HTTPS SSL

* Este no es un proceso trivial. Con suerte, este tutorial hará que SSL funcione para usted. Sin embargo, configurarlo correctamente una vez que funciona es TOTALMENTE BAJO DE TI.

Lectura adicional para todos los que viajan por este camino

Okay,

He basado este tutorial en la creación de un sitio llamado www.wamphelpers.dev Entonces, cuando vea ese nombre, cámbielo por el nombre del sitio que está tratando de proteger.

Comencé creando un sitio no seguro, en / wamp / www / wamphelpers

agregó un host virtual para ese sitio, en /wamp/bin/apache/apache{version}/conf/extra/httpd-vhosts.conf

<VirtualHost *:80> DocumentRoot "c:/wamp/www" ServerName localhost ServerAlias localhost <Directory "c:/wamp/www"> AllowOverride All Require local </Directory> </VirtualHost> <VirtualHost *:80> DocumentRoot "c:/wamp/www/wamphelpers" ServerName wamphelpers.dev ServerAlias www.wamphelpers.dev <Directory "c:/wamp/www/wamphelpers"> AllowOverride All Require local </Directory> </VirtualHost>

Agregó su nombre de dominio a C: / windows / system32 / drivers / etc / hosts

Algunos verificadores de virus bloquean el acceso al archivo HOSTS, por lo que es posible que deba deshabilitar su verificador de virus o configurarlo para que no bloquee el archivo de hosts temporalmente .

127.0.0.1 wamphelpers.dev www.wamphelpers.dev ::1 wamphelpers.dev www.wamphelpers.dev

Ahora reinicie el dnscache de la siguiente manera desde una ventana de comandos iniciada usando ''Ejecutar como administrador''

net stop dnscache net start dnscache

Luego creó un script simple en / wamp / www / wamphelpers / index.php

<?php echo ''Hello, this is the WAMPHELPERS.DEV site homepage''; ?>

Ahora, para activar los nuevos hosts virtuales que ha definido, edite /wamp/bin/apache/apache{version}/conf/httpd.conf y busque esta línea

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

y elimine el carácter de comentario # así

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

Guarda el archivo.

Ahora reinicie Apache y asegúrese de que su sitio simple, virtualmente alojado y no protegido, esté funcionando antes de continuar .

El kit de herramientas openssl. El openssl.exe, ssleay32.dll y libeay32.dll vienen y se encuentran en la carpeta C: / wamp / bin / apache / apachex.yz / bin ¡¡Esto debería ser todo lo que necesita para crear su certificado autofirmado !!

SIN EMBARGO: Estos no funcionaron para mí en ninguna de las versiones de Apache que había instalado. Siempre recibí este mensaje de error.

Donde el número ordinal cambió dependiendo de la carpeta de la versión de Apache en la que estaba.

Si obtiene este error, no se preocupe, esto es lo que debe hacer.

instale la última versión del OPENSSL TOOLKIT

Esto se puede obtener desde aquí

NOTA: No utilice la versión V1.1 todavía, el equipo de PHP aún no ha compilado PHP con estos nuevos enlaces, por lo tanto, adhiérase a la V1.0. versiones hasta que lo hagan.

Elija la última versión de ''Win32 OpenSSLv xxx Light'' o ''Win64 OpenSSLv xxx Light'' para que coincida con su versión instalada de WAMPServer, ya que esto es todo lo que necesita.

Esto descargará un archivo .exe que puede ejecutar para instalar este kit de herramientas.

Le hará la siguiente pregunta, le sugiero que responda así para que no termine instalando algo en C: / windows / system32. Después de todo, este es un juego de herramientas y cambia razonablemente a menudo. Lo mejor es mantener estas cosas separadas y no convertirlas en un sistema global.

Una vez que esté instalado (en la carpeta que haya especificado en la instalación), ¡debería estar listo para comenzar el proceso de generación de claves y certificados!

Generar claves y certificados.

PASO 1: generar una clave privada RSA

Primero necesitamos crearnos un certificado. El proceso normal (pagado) es crear su certificado y luego pasarlo a una autoridad de firma. Es por eso que cuesta dinero, como tienen que hacer, debido diligencia, verificar que usted es quien dice ser y que el sitio en el que utilizará el certificado es real y legítimo.

El kit de herramientas openssl se utiliza para generar una clave privada RSA y CSR (Solicitud de firma de certificado) que se utilizará para nuestro certificado. El primer paso es crear su clave privada RSA. Esta clave es una clave RSA de 1024 bits que se cifra con Triple-DES y se almacena en un formato PEM para que pueda leerse como texto ASCII.

Abra una ventana de Comando (cuadro Dos) usando [b] Ejecutar como administrador [/ b] Cambie el directorio donde instaló el Kit de herramientas de OpenSSL arriba. En mi caso esto es

CD c:/apps/OpenSSL-Win32/bin

Haga una carpeta para colocar la salida (para mantener ordenada la carpeta bin) Usé el sitio web

md website

Ahora ingrese este comando:

openssl genrsa -out website/server.key 2048

Esto debería haber creado un archivo en la carpeta del sitio web llamado server.key, sin una clave de frase de contraseña, compruebe que existe.

Paso 2: generar una CSR (solicitud de firma de certificado)

Durante la generación de la CSR, se le solicitarán varios datos. Estos son los atributos X.509 del certificado. Una de las indicaciones será para "Nombre común (por ejemplo, FQDN del servidor o SU nombre) []:". Es importante que este campo se complete con el nombre de dominio completo del servidor que se protegerá mediante SSL. Entonces, si el sitio web que se va a proteger será https://www.wamphelpers.dev , ingrese www.wampheplers.dev en este mensaje. Utilicé wamphelper.dev ya que mi ServerName es ServerName wamphelpers.dev

No ingrese nada a la pregunta: Contraseña de desafío []: ] Simplemente presione Entrar. Si ingresa una frase de contraseña aquí cuando inicie Apache con SSL configurado, Apache no se iniciará y mostrará este mensaje de error: -

[error] Init: SSLPassPhraseDialog incorporado no es compatible con Win32

Básicamente, si ingresa una frase de contraseña, se supone que Apache lo desafiará por esa frase de contraseña cada vez que comience. Obviamente, esto no facilitará su vida, pero principalmente en Windows no funciona realmente y hará que Apache se bloquee cuando intente solicitar la frase de contraseña, con el error anterior.

El comando para generar la CSR es el siguiente:

openssl req -new -key website/server.key -out website/server.csr Example question and answers: Country Name (2 letter code) [AU]:GB State or Province Name (full name) [Some-State]: Hampshire Locality Name (eg, city) []: Portsmouth Organization Name (eg, company) [Internet Widgits Pty Ltd]: Wamp Helpers Ltd Organizational Unit Name (eg, section) []: Information Technology Common Name (e.g. server FQDN or YOUR name) []: wamphelpers.dev Email Address []: [email protected] Please enter the following ''extra'' attributes to be sent with your certificate request A challenge password []: ( leave blank just hit the enter key ) An optional company name []: ( leave blank just hit the enter key )

Paso 3: generar un certificado autofirmado

En este punto, deberá generar un certificado autofirmado porque no planea que su certificado sea firmado por una CA o desea probar su nueva implementación de SSL mientras la CA está firmando su certificado.

PRE - ADVERTENCIA Este certificado generará un error en el navegador del cliente en el sentido de que la autoridad de certificación de firma es desconocida y no es confiable. Esto es inevitable ya que firmamos el certificado nosotros mismos, pero, por supuesto, la red de confianza no sabe quiénes somos. Vea el ejemplo más adelante en este documento que muestra cómo decirle a su navegador que realmente confía en este certificado

openssl x509 -req -days 365 -in website/server.csr -signkey website/server.key -out website/server.crt Example output: Loading ''screen'' into random state - done Signature ok subject=/C=GB/ST=Hampshire/L=Portsmouth/O=WampHelpers Ltd/OU=Information Technology/CN=www.wamphelpers.dev/[email protected] Getting Private key

Paso 4: Instalar la clave privada y el certificado

Cree estos 2 directorios bajo la versión de Apache que está utilizando.

md c:/wamp/bin/apache/apachex.y.z/conf/ssl.key md c:/wamp/bin/apache/apachex.y.z/conf/ssl.crt

Y copie el archivo que acabamos de generar en ellos de la siguiente manera:

copy website/server.crt c:/wamp/bin/apache/apachex.y.z/conf/ssl.crt copy website/server.key c:/wamp/bin/apache/apachex.y.z/conf/ssl.key

Paso 5: Configure Apache para activar SSL

Edite httpd.conf, verifique que esta línea no esté comentada

LoadModule authn_socache_module modules/mod_authn_socache.so LoadModule ssl_module modules/mod_ssl.so LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

Elimine el comentario ''#'' de esta línea también

Include conf/extra/httpd-ssl.conf

Luego mueve esa línea después de este bloque ... así

<IfModule ssl_module> SSLRandomSeed startup builtin SSLRandomSeed connect builtin </IfModule> # Secure (SSL/TLS) connections Include conf/extra/httpd-ssl.conf

Paso 6: Configurar PHP para activar SSL

Edite su php.ini (use los menús de wampmanager para editar el correcto)

Eliminar el comentario '';'' de esta linea

extension=php_openssl.dll

Paso 7: Configure sus sitios seguros Virtual Host

Sí, para todos ustedes, Virtual Host, más aún, ahora no pueden evitar el proceso.

Editar /wamp/bin/apache/apachex.yz/conf/extra/httpd-ssl.conf

Apache publica este archivo y contiene alguna ubicación de archivo predeterminada. Podemos dejar la mayor parte de este archivo tal como está, pero necesitamos configurar el host virtual aquí para que coincida con la ubicación de nuestros sitios reales y algunas otras cosas para:

encuentra estas líneas

DocumentRoot "c:/Apache2/htdocs" ServerName www.example.com:443 ServerAdmin [email protected] ErrorLog "c:/Apache2/logs/error.log" TransferLog "c:/Apache2/logs/access.log"

y cambiarlos a

DocumentRoot "c:/wamp/www/wamphelpers" ServerName wamphelpers.dev:443 ErrorLog "c:/wamp/logs/ssl_error.log" TransferLog "c:/wamp/logs/ssl_access.log"

Encontrar

SSLCertificateFile "c:/Apache2/conf/server.crt"

y cambiar a

SSLCertificateFile "c:/wamp/bin/apache/apachex.y.x/conf/ssl.crt/server.crt"

Encontrar

SSLCertificateKeyFile "c:/Apache2/conf/server.key"

y cambiar a

SSLCertificateKeyFile "c:/wamp/bin/apache/apachex.y.x/conf/ssl.key/server.key"

Encontrar

<Directory "c:/Apache2/cgi-bin"> SSLOptions +StdEnvVars </Directory>

y cambiar a

Sintaxis de Apache 2.2

<Directory "c:/wamp/www/wamphelpers"> SSLOptions +StdEnvVars Options Indexes FollowSymLinks MultiViews AllowOverride All Order Deny,Allow Deny from all Allow from 127.0.0.1 localhost ::1 </Directory>

Apache 2.4 Sintaxis

<Directory "c:/wamp/www/wamphelpers"> SSLOptions +StdEnvVars Options Indexes FollowSymLinks MultiViews AllowOverride All Require local </Directory>

Encontrar

SSLSessionCache "shmcb:c:/Apache2/logs/ssl_scache(512000)" SSLSessionCacheTimeout 300

y cambiarlo a

SSLSessionCache "shmcb:c:/wamp/logs/ssl_scache(512000)" SSLSessionCacheTimeout 300

Encontrar

CustomLog "c:/Apache24/logs/ssl_request.log" / "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x /"%r/" %b"

y cambiar a

CustomLog "c:/wamp/logs/ssl_request.log" / "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x /"%r/" %b"

Básicamente, revise el archivo conf y cualquier comando que no esté comentado, pero que tenga una referencia a un archivo o carpeta, debe cambiarse para hacer referencia a la estructura de la carpeta WAMPServer y no a ''C: / Apache2 ....''

Ahora asegúrese de que todos estos archivos que hemos cambiado estén guardados, y reinicie Apache usando los menús de wampmanager.

Primero pruebe que el sitio desprotegido todavía funciona.

Luego intente usar su nuevo sitio protegido agregando ''https: //'' al frente del nombre de dominio, es decir, https://www.wamphelpers.dev sin las comillas simples, por supuesto.

Si Apache no se reinicia , probablemente haya escrito algo mal. Pruebe las configuraciones así: -

Abrir una ventana de comando

cd /wamp/bin/apache/apachex.y.z/bin httpd -t

Esto analizará todos los archivos de configuración y debería darle un nombre de archivo y un número de línea donde se ha encontrado un error.

Solucionelo e intente nuevamente.

El primer acceso a su sitio generará una página de mensaje similar a esta. Esto está usando FireFox, otros serán ligeramente diferentes, pero el concepto es el mismo.

Esto se debe a que su certificado no está firmado por una autoridad confiable, NO PÁNICO, se supone que esto sucederá.

Haga clic en "Entiendo el riesgo" y aparecerá un botón que dice "Agregar excepción". Presione el botón Agregar excepción, después de verificar que los detalles del sitio de certificados son suyos, y no volverá a ver este mensaje a menos que borre La lista de excepciones.

NOTA GRANDE A partir de Apache v2.2.12 y OpenSSL v0.9.8j ahora es posible asegurar más de un sitio por instancia de Apache. Este tutorial no cubre ese proceso. Vea aquí para más detalles:

Here

y aquí

y aquí

Y como dije en la parte superior, ahora necesita hacer un poco de investigación sobre todas las opciones disponibles en la configuración SSL y hacer que las cosas funcionen como lo desea en lugar de usar el predeterminado.