SSL de instalación en el servidor wamp: Error en httpd-ssl.conf

Estoy tratando de establecer ssl en el host local que he seguido el http://madurad.wordpress.com/2014/04/25/redirect-http-to-https-with-wamp-server/ y muchos otros, pero no se puede obtener éxito. Me quedé atrapado en la syntax de httpd-ssl.conf. mi servidor apache bajar cuando configuro el

 Options Indexes FollowSymLinks AllowOverride all Require all granted SSLOptions +StdEnvVars  

He intentado muchos otros como

  SSLOptions +StdEnvVars  

qué es un problema que no se puede obtener …

    Cómo configurar WAMPServer para usar SSL HTTPS

    * Este no es un proceso trivial. Este tutorial, con suerte, hará que SSL funcione para usted. Sin embargo, configurarlo correctamente una vez que está funcionando está TOTALMENTE HACIA ABAJO.

    Lectura adicional para todos los que viajan por este camino

    De acuerdo,

    He basado este tutorial en la creación de un sitio llamado http://www.wamphelpers.dev Entonces, donde veas ese nombre, cámbialo por el nombre del sitio que intentas proteger.

    Empecé creando un sitio no seguro, en \ wamp \ www \ wamphelpers

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

      DocumentRoot "c:/wamp/www" ServerName localhost ServerAlias localhost  AllowOverride All Require local    DocumentRoot "c:/wamp/www/wamphelpers" ServerName wamphelpers.dev ServerAlias www.wamphelpers.dev  AllowOverride All Require local   

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

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

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

    Ahora reinicie dnscache de la siguiente manera desde una ventana de comando ejecutada 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 encuentre esta línea

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

    y eliminar el caracter # comentario como tal

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

    Guarda el archivo.

    Ahora reinicia Apache y asegúrate de que tu sitio no protegido Virtually Hosted funcione antes de continuar .


    El kit de herramientas de openssl. El openssl.exe, ssleay32.dll y libeay32.dll vienen con, 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: Esto no funcionó para mí en ninguna de las versiones de Apache que tenía instaladas. Siempre recibí este mensaje de error.

    mensaje de error

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

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

    instale la última versión de OPENSSL TOOLKIT

    Esto puede obtenerse aquí

    NOTA: aún no utiliza la versión V1.1, el equipo de PHP aún no compiló PHP con estos nuevos enlaces, así que quédese con la versión 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 la responda así para que no termine instalando algo en C: \ windows \ system32. Después de todo esto es un conjunto de herramientas y cambia bastante a menudo. Lo mejor es mantener estas cosas separadas y no hacer que el sistema sea global.

    sugerencia de instalación de openssl

    Una vez que esté instalado (en cualquier 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 tenemos que crearnos un certificado. El proceso normal (pagado) es crear su certificado y luego pasarlo a una autoridad de firma. Esta es la razón por la cual cuesta dinero, como tienen que hacer, diligencia debida, comprobar que usted es quien dice ser y que el sitio en el que usará el certificado es real y legítimo.

    El kit de herramientas de openssl se utiliza para generar una clave privada de RSA y una CSR (solicitud de firma de certificado) para ser utilizada en nuestro certificado. El primer paso es crear su clave privada RSA. Esta clave es una clave RSA de 1024 bits que se cifra utilizando Triple-DES y se almacena en un formato PEM para que sea legible 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 OpenSSL arriba. En mi caso esto es

     CD c:\apps\OpenSSL-Win32\bin 

    Haga una carpeta para que se coloque 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, verifique que exista.

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

    Durante la generación de la CSR, se le solicitarán varias piezas de información. 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á con SSL. Por lo tanto, si el sitio web que debe protegerse será https://www.wamphelpers.dev , ingrese www.wampheplers.dev en este mensaje. Utilicé wamphelper.dev como mi ServerName es ServerName wamphelpers.dev

    No ingrese nada a la pregunta: Una contraseña de desafío []: ] Simplemente presione Entrar. Si ingresa una frase de contraseña aquí cuando ingrese a 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 ingresas una frase de contraseña, se supone que Apache te desafiará por esa frase de contraseña cada vez que se inicie. Obviamente, esto no va a hacer su vida más fácil, pero principalmente en Windows, en realidad no funciona y hará que Apache se cuelgue cuando intente solicitar la contraseña, con el error anterior.

    El comando para generar el 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 (eg server FQDN or YOUR name) []: wamphelpers.dev Email Address []: me@wamphelpers.dev 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 o no planea que su certificado esté 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 del certificado de firma es desconocida y no es de confianza. Esto es inevitable ya que estamos firmando 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/emailAddress=riggsfolly@wamphelpers.dev Getting Private key 

    Paso 4: instalar la clave privada y el certificado

    Crea estos 2 directorios bajo la versión de Apache que estás usando.

     md c:\wamp\bin\apache\apachex.yz\conf\ssl.key md c:\wamp\bin\apache\apachex.yz\conf\ssl.crt 

    Y copie el archivo que acabamos de generar en ellos así:

     copy website\server.crt c:\wamp\bin\apache\apachex.yz\conf\ssl.crt copy website\server.key c:\wamp\bin\apache\apachex.yz\conf\ssl.key 

    Paso 5: configura Apache para activar SSL

    Editar httpd.conf, verificar 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í

      SSLRandomSeed startup builtin SSLRandomSeed connect builtin  # 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: configura tus sitios seguros Host virtual

    Sí, para todos los que dicen Virtual Host nay sayers, ahora no se puede evitar el proceso.

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

    Este archivo es lanzado por Apache y contiene alguna ubicación de archivo predeterminada. Podemos dejar la mayor parte de este archivo tal como está, pero tenemos que configurar el host virtual aquí para que coincida con la ubicación de nuestros sitios reales y algunas cosas más así:

    encuentra estas líneas

     DocumentRoot "c:/Apache2/htdocs" ServerName www.example.com:443 ServerAdmin admin@example.com 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.yx/conf/ssl.crt/server.crt" 

    Encontrar

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

    y cambiar a

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

    Encontrar

      SSLOptions +StdEnvVars  

    y cambiar a

    Apache 2.2 Sintaxis

      SSLOptions +StdEnvVars Options Indexes FollowSymLinks MultiViews AllowOverride All Order Deny,Allow Deny from all Allow from 127.0.0.1 localhost ::1  

    Apache 2.4 Sintaxis

      SSLOptions +StdEnvVars Options Indexes FollowSymLinks MultiViews AllowOverride All Require local  

    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 mira a través del 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 modificado estén guardados, y reinicie Apache usando los menús de wampmanager.

    Primero prueba que el sitio desprotegido todavía está funcionando.

    Luego intente utilizar su nuevo sitio protegido agregando el ‘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 deletreado algo incorrecto. Pruebe las configuraciones de esta manera: –

    Abra una ventana de comando

     cd \wamp\bin\apache\apachex.yz\bin httpd -t 

    Esto analizará todos los archivos de configuración y le dará un nombre de archivo y un número de línea donde se encontró un error.

    Arreglarlo e intentarlo de nuevo.

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

    enter image description here

    Esto se debe a que su certificado no está firmado por una autoridad confiable, DONT PANIC, se supone que esto debe suceder.

    Haga clic en “Entiendo el riesgo” y le mostrará un botón que dice “Agregar excepción”. Presione el botón Agregar excepción, después de verificar que los datos del sitio de certificados son de hecho 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 proteger más de un sitio por instancia de Apache. Este tutorial no cubre ese proceso. Mira aquí para más detalles:

    aquí

    y aquí

    y aquí

    Y como dije en la parte superior, ahora necesita hacer una investigación sobre todas las opciones disponibles en la configuración SSL y hacer que todo funcione como lo desee en lugar de usar el valor predeterminado.

    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 arroja el siguiente mensaje:

    AH00526: Error de syntax 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 admitida (nombres conocidos:). Tal vez necesites cargar el módulo socache apropiado (mod_socache_shmcb?).

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

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

    -Cuando intentes editar tu archivo de hosts, asegúrate de desactivar cualquier virusscanner. Algunos de ellos bloquean el acceso al archivo de hosts.

    -segúrate de abrir tu texteditor como administrador cuando edites tu archivo de hosts o de lo contrario obtendrás un error al intentar guardarlo.

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

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

    -el paso openssl genrsa -out sitio web \ server.key 2048 crea un archivo server.key y no un privkey.pem!

    -file \ 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 dependa del WAMPServer versión)

    -Tenía que usar diferentes puertos para http (80-> 8080) y https (443-> 444) ya que estos puertos fueron utilizados por Skype. Cuando utilice puertos diferentes, asegúrese de utilizarlos en cualquier lugar donde vea 80 o 443 en este tutorial.

    -Tenía que habilitar socache_shmcb_module. El “httpd -t” también mencionó esto.

    Si tiene el error algo como esto:

     Cannot load modules/mod_ssl.so into server: The specified module could not be found. 
    1. Es posible que desee intentar buscar libeay32.dll en su carpeta wamp, probablemente lo encuentre en {wamp folder} / bin / php / php {versión 7} /

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

    3. ejecuta httpd -t y prueba la syntax

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

    @RiggsFolly : el certificado autofirmado con la clave podría generarse fácilmente, por ejemplo, aquí … http://www.selfsignedcertificate.com/ , para poder comenzar el tutorial desde el paso 4 (también tenía el 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 rest 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 

    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. Instalar 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

    Antes de todo:

    1) .Shutdown WAMP y proceda a C:\wamp\scripts\config.inc.php mover 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 sistema operativo 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 necesitaremos 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). Ingrese localhost.key y localhost.crt y colóquelos en 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) .Proceda a C:\wamp\bin\apache\apache2.4.23\conf\httpd.conf y descomente:

    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). proceder 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" ,

      SSLOptions +StdEnvVars Options Indexes FollowSymLinks MultiViews AllowOverride All Require local  

    ,

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

    Manejo de certificados:

    11). Presione Win + R e inserte ‘certmgr.msc’, importe servercert.crt en ‘Autoridades certificadas raíz de confianza’

    12). Compruebe su servidor en el símbolo del sistema ‘httpd -t’ debe 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/