Seu server_name
está definido como localhost
. Você tem que colocar o seu nome de domínio lá (www.domain.com, se o seu certificado tiver o prefixo www), para que o nginx possa selecionar o vhost apropriado durante a negociação SSL.
Eu adicionei um certificado SSL ao meu servidor. (Passageiro rodando Nginx e Rails).
Eu criei um CSR, enviei para o GoDaddy, baixei as chaves. Dentro de / srv / ssl eu tenho
www.mydomain.com.crt
www.mydomain.com.key
Minha versão nginx:
nginx -V
nginx version: nginx/1.2.6
built by gcc 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --with-http_ssl_module --with-http_gzip_static_module --with-cc-opt=-Wno-error --with-pcre=/tmp/root-passenger-27798/pcre-8.31 --add-module=/home/deploy/.rvm/gems/ruby-1.9.3-p392/gems/passenger-3.0.19/ext/nginx
Eu adicionei isso ao meu arquivo nginx.conf:
server {
listen 443;
server_name localhost;
ssl_certificate /srv/ssl/www.mydomain.com.crt;
ssl_certificate_key /srv/ssl/www.mydomain.com.key;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
Além das duas linhas ssl e a porta estar em 443 em vez de 80, o bloco do servidor é idêntico ao que está acima dele, que serve o http regular.
Quando uso
escute 443 ssl; e descomente isto:
# ssl_session_timeout 5m;
# ssl_protocols SSLv2 SSLv3 TLSv1;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
Depois, recebo um aviso de expiração de SSL.
Quando eu refizer os comentários e usar
listen 443 ssl;
Então recebo um erro, mas quando visito
link com um www, recebo um bloqueio verde no Chrome, mas um erro 404. Isso significa que tenho o SSL configurado para " www "mas não o não www?
Seu server_name
está definido como localhost
. Você tem que colocar o seu nome de domínio lá (www.domain.com, se o seu certificado tiver o prefixo www), para que o nginx possa selecionar o vhost apropriado durante a negociação SSL.