Был на домашнем компьютере сайт для экспериментов. Изначально был установлен nginx 1.8. После обновления системы nginx обновился до 1.10. При этом возникли проблемы со входом на сайт по https.
Изначально использовалось значние ssl_ciphers по умолчанию (просто не указывал в конфигах). Однако после обновления стал получать ERR_SPDY TRANSPORT_SECURITY. в Chrome и пустую страницу в Firefox. Поковыряв в интернете разные варианты значений добился, что в Chrome сайт стал работать, а вот в Firefox работать отказывается по причине не защищённости соедиения. Просто отображается пустая страница. В отладчике есть содержимое запроса, но нет ни строчки ответа. Как ни странно, в логах nginx пусто. Даже полностью очищал папку и смотрел какие логи будут пополняться новой информацией.
Доп.информация. У меня есть ещё один "сервер" - домашняя файлопомойка на той же операционной системе Gentoo. Там тоже есть https сайт и он работает нормально даже после обновления. Кроме этого, в интернете есть саой виртуальный сервер на FreeBSD. Там тоже обновился nginx до 1.10 и этот сертификат работает без проблем на другом домене (в сертификате прописано 2 домена).
Пробовал выставить те же USE флаги, что и на рабочем nignx. Не помогло. Даже конфигурацию скачал с работающего nginx и лоложил на проблемный.
В чём ещё может быть проблема? Где отловить ошибку,, в каких логах?
P.S.: на 1.8 использовал spdy, после обновления исправил на http2. Пробовал отключать, всё равно проблема с сертификатом.
Конфиг для сайта. TLS SNI support enabled
server {
listen 443 ssl http2;
server_name ecample.com;
ssl_certificate /etc/ssl/nginx/ecample.com.crt;
ssl_certificate_key /etc/ssl/nginx/ecample.com.key;
charset utf-8;
access_log /var/log/nginx/ecample.com_access.log;
error_log /var/log/nginx/ecample.com_error.log;
root /home/fsa/www/ecample.com;
location / {
index index.php index.html;
}
location ~ \.php$ {
fastcgi_pass php-fpm;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
server {
listen 80;
server_name ecample.com www.ecample.com;
return 301 https://ecample.com$request_uri;
}
server {
listen 443 ssl http2;
server_name www.ecample.com;
ssl_certificate /etc/ssl/nginx/ecample.com.crt;
ssl_certificate_key /etc/ssl/nginx/ecample.com.key;
return 301 https://ecample.com$request_uri;
}
Так работает в Chrome.
user fsa fsa;
worker_processes 1;
error_log /var/log/nginx/error_log info;
events {
worker_connections 1024;
use epoll;
}
http {
upstream php-fpm {
server unix:/var/run/php.socket;
}
ssl_password_file /etc/ssl/nginx/ssl.passwd;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECOM:AES256+EDH";
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 5m;
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main
'$remote_addr - $remote_user [$time_local] '
'"$request" $status $bytes_sent '
'"$http_referer" "$http_user_agent" '
'"$gzip_ratio"';
client_header_timeout 10m;
client_body_timeout 10m;
send_timeout 10m;
connection_pool_size 256;
client_header_buffer_size 1k;
large_client_header_buffers 4 2k;
request_pool_size 4k;
gzip on;
output_buffers 1 32k;
postpone_output 1460;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 75 20;
ignore_invalid_headers on;
index index.html;
include /etc/nginx/sites/*;
}
P.P.S. Проблема всё-таки в HTTP2. Когда пробовал его отключать, то забыл про ещё один хост, где было включен HTTP2 и он не отключался.