err_ssl_protocol_error apache ssl https openssl

err_ssl_protocol_error - Apache SSL Configuration Error(Error de conexión SSL)



err_ssl_protocol_error apache ubuntu (13)

De forma similar a otras respuestas, este error se puede experimentar cuando no hay sitios configurados para usar SSL.

Tuve el error cuando actualicé Debian Wheezy a Debian Jessie. La nueva versión de Apache requiere un archivo de configuración del sitio que termina en .conf . Debido a que mi archivo de configuración no, se estaba ignorando, y no había otros configurados para servir conexiones SSL.

Intento configurar Apache en mi servidor para que funcione con ssl, pero cada vez que visito mi sitio, aparece el siguiente mensaje en mi navegador:

Error de conexión SSL No se puede establecer una conexión segura con el servidor. Esto puede ser un problema con el servidor, o puede requerir un certificado de autenticación del cliente que no tiene. Error 107 (net :: ERR_SSL_PROTOCOL_ERROR): error de protocolo SSL.

El mensaje de error anterior parece ser nativo de Google Chrome. Sin embargo, aunque los mensajes son diferentes, ssl para el sitio no funciona en ningún navegador.

Algunos antecedentes sobre la situación: estoy usando Ubuntu 10.04 desktop edition. Instalé Apache instalando el servidor Zend (instaló Apache automáticamente). Luego instalé openssl. Las páginas que no son https funcionan bien en el sitio. Intenté obtener certificados de prueba de múltiples sitios de certificados, pero nada funciona (el mismo error). Anteriormente estaba alojando mi sitio en otro servidor en el que SSL funcionaba bien. También intenté usar la clave y el archivo crt de ese servidor, pero obtuve el mismo error. El nombre de dominio y la IP siguen siendo los mismos. Mi SSLCertificateFile y SSLCertificateKeyFile apuntan al directorio y a los archivos correctos. Tampoco tengo habilitado SSLVerifyClient.

Si alguien tiene alguna sugerencia, sería muy apreciada.


Encontré este problema, también debido a una mala configuración. Estaba usando tomcat y en el servidor.xml había especificado mi conector como tal:

<Connector port="17443" SSLEnabled="true" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keyAlias="wrong" keystorePass="secret" keystoreFile="/ssl/right.jks" />

Cuando lo arreglé de esta manera:

<Connector port="17443" SSLEnabled="true" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keyAlias="right" keystorePass="secret" keystoreFile="/ssl/right.jks" />

Funcionó como se esperaba. En otras palabras, verifique que no solo tiene el almacén de claves correcto, sino que ha especificado el alias correcto debajo de él. Gracias por la valiosa sugerencia .


Estaba obteniendo el mismo error en Chrome (y uno diferente en Firefox, IE). También en error.log recibía [error] [client cli.ent.ip.add] Invalid method in request /x16/x03 Siguiendo las instrucciones de este sitio , cambié mi configuración FROM:

<VirtualHost subdomain.domain.com:443> ServerAdmin [email protected] ServerName subdomain.domain.com SSLEngine On SSLCertificateFile conf/ssl/ssl.crt SSLCertificateKeyFile conf/ssl/ssl.key </VirtualHost>

A:

<VirtualHost _default_:443> ServerAdmin [email protected] ServerName subdomain.domain.com SSLEngine On SSLCertificateFile conf/ssl/ssl.crt SSLCertificateKeyFile conf/ssl/ssl.key </VirtualHost>

Ahora está funcionando bien :)


Esto es lo que me solucionó en Ubuntu.

  1. Habilitado el módulo: a2enmod ssl
  2. Se movieron todos los archivos relacionados con cert a una carpeta /usr/local/ssl y se hizo legible en todo el mundo: chmod -R +r /usr/local/ssl
  3. Se modificó <VirtualHost *:80> a <VirtualHost *:*> en mi host virtual.
  4. Se agregó SSLEngine On antes que todas las otras directivas SSL en mi host virtual.

Si configura una frase de contraseña en el certificado, Apache debería pedirle que lo haga al reiniciar.



Me encuentro con este problema, porque tengo <VirtualHost> definido tanto en httpd.conf como en httpd-ssl.conf .

en httpd.conf, se define como

<VirtualHost localhost>

en httpd-ssl.conf, se define como

<VirtualHost _default_:443>

El siguiente cambio solucionó este problema, agregue: 80 en httpd.conf

<VirtualHost localhost:80>


No sabía lo que estaba haciendo cuando comencé a cambiar la configuración de Apache. Cogí algunas partes y pensé que funcionaba hasta que encontré el mismo problema que encontré, específicamente Chrome teniendo este error.

Lo que hice fue comentar todas las directivas específicas del sitio que se usan para configurar la verificación SSL, confirmé que Chrome me permitió acceder, revisé la documentación antes de la directiva antes de volver a habilitar una, y reinicié Apache. Al examinarlos detenidamente, debe poder determinar cuál es el que está causando su problema.

En mi caso, pasé de esto:

SSLVerifyClient optional SSLVerifyDepth 1 SSLOptions +StdEnvVars +StrictRequire SSLRequireSSL On

a esto

<Location /sessions> SSLRequireSSL SSLVerifyClient require </Location>

Como pueden ver, tuve una buena cantidad de cambios para llegar allí.


Resulta que el certificado SSL se instaló incorrectamente. Reinstalarlo corrigió correctamente el problema


Tengo este problema y la solución fue un poco tonta.

Estoy usando Cloudflare que actúa como proxy de mi sitio web. Para poder iniciar sesión a través de SSH, agregué una entrada a mi /etc/hosts para no tener que recordar la dirección IP de mi servidor.

xxx.xx.xx.xxx example.com

Así que en mi navegador cuando fui a https://www.example.com , estaba usando el proxy Cloudflare, y cuando fui a https://example.com iba directamente al servidor. Debido a que la instalación de Cloudflare no requiere que agregue los certificados intermedios, estaba viendo esta excepción de seguridad en mi navegador cuando fui a https://example.com , pero https://www.example.com estaba trabajando.

La solución : elimine la entrada del /etc/hosts de mi computadora portátil.

Si este no es su problema, le recomiendo usar una de las muchas herramientas en línea del comprobador de SSL para intentar diagnosticar su problema.

También recomiendo usar ping para verificar la dirección IP que se informa y verificarla con la dirección IP esperada.

ping https://www.example.com/

Otro recurso SSL muy útil es Mozilla SSL Configuration Generator . Puede generar una configuración SSL para usted.


Tuve el mismo problema que @ User39604, y tuve que seguir DIVERSOS consejos. Como él no recuerda el camino preciso que siguió, permítame enumerar mi ruta:

  1. compruebe si tiene SSL SÍ con <?php echo phpinfo();?>

  2. si necesario

    A. habilitar ssl en apache sudo a2enmod ssl

    B. instalar openssl sudo apt-get install openssl

    C. verificar si el puerto 443 está abierto sudo netstat -lp

    D. si es necesario, cambie /etc/apache2/ports.conf , esto funciona

    NameVirtualHost *:80 Listen 80 <IfModule mod_ssl.c> # If you add NameVirtualHost *:443 here, you will also have to change # the VirtualHost statement in /etc/apache2/sites-available/default-ssl # to <VirtualHost *:443> # Server Name Indication for SSL named virtual hosts is currently not # supported by MSIE on Windows XP. NameVirtualHost *:443 Listen 443 </IfModule> <IfModule mod_gnutls.c> Listen 443 </IfModule>

  3. adquirir una clave y un certificado por

    A. pagando una Autoridad de Certificación (Comodo, GoDaddy, Verisign) por un par

    B. generando su propio * - vea abajo (solo para propósitos de prueba)

  4. cambie su configuración (en ubuntu12 /etc/apache2/httpd.conf - por defecto es un archivo vacío) para incluir un <VirtualHost> apropiado (reemplace MYSITE.COM así como la clave y la ruta / nombre del certificado para apuntar a su certificado y clave) :

    <VirtualHost _default_:443> ServerName MYSITE.COM:443 SSLEngine on SSLCertificateKeyFile /etc/apache2/ssl/MYSITE.COM.key SSLCertificateFile /etc/apache2/ssl/MYSITE.COM.cert ServerAdmin MYWEBGUY@localhost DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/errorSSL.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/accessSSL.log combined </VirtualHost>

mientras que muchas otras configuraciones de virtualhost estarán disponibles en /etc/apache2/sites-enabled/ y en /etc/apache2/sites-available/ fue /etc/apache2/httpd.conf que fue CRUCIAL para resolver todos los problemas.

para más información:

http://wiki.vpslink.com/Enable_SSL_on_Apache2

http://httpd.apache.org/docs/2.0/ssl/ssl_faq.html#selfcert

* generar su propio certificado (autofirmado) dará como resultado un certificado cuya autoridad el navegador del usuario no reconocerá. por lo tanto, el navegador gritará maldito asesinato y el usuario tendrá que "comprender los riesgos" una docena de veces antes de que el navegador realmente abra la página. por lo tanto, solo funciona con fines de prueba. Dicho esto, este es el CÓMO:

  1. ir a la carpeta apache (en ubuntu12 /etc/apache2/ )
  2. crea una carpeta como ssl (o cualquier cosa que funcione para ti, el nombre no es un requisito del sistema)
  3. Ir al directorio elegido /etc/apache2/ssl
  4. ejecutar sudo openssl req -new -x509 -nodes -out MYSITE.COM.crt -keyout MYSITE.COM.key
  5. usa MYSITE.COM.crt y MYSITE.COM.key en tu etiqueta <VirtualHost>

el formato del nombre NO está bajo un estricto requisito del sistema, debe ser el mismo que el del archivo :) - nombres como 212-MYSITE.COM.crt , june2014-Godaddy-MYSITE.COM.crt deberían funcionar.


Tuve este error la primera vez que seguí las instrucciones para configurar la configuración apache2 ssl predeterminada, al poner un enlace simbólico para /etc/apache2/sites-available/default-ssl en /etc/apache2/sites-enabled . Luego intenté agregar otro NameVirtualHost en el puerto 443 en otro archivo de configuración y comencé a obtener este error.

Lo arreglé borrando el enlace simbólico /etc/apache2/sites-enabled/default-ssl , y luego solo tenía estas líneas en otro archivo de configuración (httpd.conf, que probablemente no era bueno, pero funcionó):

NameVirtualHost *:443 <VirtualHost *:443> SSLEngine on SSLCertificateChainFile /etc/apache2/ssl/chain_file.crt SSLCertificateFile /etc/apache2/ssl/site_certificate.crt SSLCertificateKeyFile /etc/apache2/ssl/site_key.key ServerName www.mywebsite.com ServerAlias www.mywebsite.com DocumentRoot /var/www/mywebsite_root/ </VirtualHost>


Una causa común que quería sugerir para esta situación:

En ocasiones, un cliente ejecuta Skype, que utiliza el puerto 443 sin que se den cuenta. Cuando inician Tomcat o Apache, parece que se inicia pero no se puede vincular con el puerto 443. Este es el mensaje exacto que el usuario recibiría en el navegador. La solución es detener lo que se estaba ejecutando en el puerto 443 y reiniciar el servidor web para que pueda vincularse con el puerto 443.

El cliente puede reiniciar Skype luego de iniciar el servidor web, y Skype detectará que el puerto 443 está en uso y elegirá un puerto diferente para usar.


#Make sure that you specify the port for both http and https ie. NameVirtualHost:80 NameVirtualHost:443 #and <VirtualHost *:80> <VirtualHost *:443> #mixing * and *:443 does not work it has to be *:80 and *:443