
Acabo de comprar un certificado SSL para mi sitio web e intenté hacerlo funcionar con mi instalación de nginx, pero al conectarme, el navegador rechaza la conexión con el sitio web. Aquí está la parte relevante de Vhost:
server {
listen 80;
listen [::]:80;
server_name mysite.be www.mysite.be;
return 301 https://mysite.be$request_uri;
}
server {
listen 443 ssl spdy;
listen [::]:443 ssl spdy;
ssl_certificate /etc/nginx/ssl/mysite.be/www.mysite.be.pem;
ssl_certificate_key /etc/nginx/ssl/mysite.be/mysite.be.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # don.t use SSLv3 because of the POODLE attack
# Enable OCSP Stapling, point to certificate chain
ssl_stapling on;
ssl_stapling_verify on;
# Tell the browser we do SPDY
# add_header Alternate-Protocol 443:npn-spdy/2;
server_name mysite *.mysite.be;
[.....]
La configuración que ves arriba
La parte nginx.conf:
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA !RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS";
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.4.4 8.8.8.8 valid=300s;
resolver_timeout 10s;
ssl_session_cache shared:SSL:32m;
ssl_buffer_size 8k;
ssl_session_timeout 10m;
No sé qué hice mal, seguí muchos tutoriales para llegar a este punto y luego simplemente no funciona.
Respuesta1
La primera configuración del servidor es una redirección a HTTPS (segunda configuración).
En la configuración del segundo servidor, el módulo SPDY no está integrado de forma predeterminada, debe habilitarse con el --with-http_spdy_module
parámetro de configuración. Tenga en cuenta que para aceptar conexiones HTTPS y SPDY simultáneamente en el mismo puerto, la biblioteca OpenSSL utilizada debe admitir la extensión TLS "Next Protocol Negotiation", disponible desde la versión 1.0.1 de OpenSSL (referencia aquí).
Escribiría la configuración del segundo servidor de esta manera (PoC):
server {
listen 443;
server_name .mysite.be;
ssl on;
ssl_certificate /etc/nginx/ssl/mysite.be/www.mysite.be.pem;
ssl_certificate_key /etc/nginx/ssl/mysite.be/mysite.be.key;
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
root [YOUR_ROOT_DIR]
...
}
En el, nginx.conf
omitiría todo lo relacionado con SSL y lo mantendría de forma predeterminada.