У меня есть общедоступный IP-адрес (например, 123.123.123.123), и я хотел бы установить ssl на сервере nginx (для использования https). У меня есть папка в /etc/nginx/ssl
где я храню свой .crt
и .key
. Вот мой nginx.conf :
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
# Load dynamic modules. See /usr/share/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 1024;
}
http {
server_tokens off;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
client_max_body_size 2M;
include /etc/nginx/conf.d/*.conf;
server {
#listen 443 ssl http2 default_server;
#listen [::]:443 ssl http2 default_server;
listen 443 ssl;
server_name _;
root /usr/share/nginx/html;
add_header X-Frame-Options "SAMEORIGIN";
ssl_certificate "/etc/nginx/ssl/site_bundle.crt";
ssl_certificate_key "/etc/nginx/ssl/site.key";
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
ssl_prefer_server_ciphers on;
ssl_dhparam /etc/nginx/ssl/dhparam.pem;
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
}
У меня следующая ошибка:
В моей папке SSL есть разные файлы, но я не знаю, какой из них использовать:
- 12ae1782cad698c6.crt
- a61d9dc8af1i5477.crt
- dhparam.pem
- gd_bundle-g2-g1.crt
- domain_bundle.crt
- domain.key
Я получил это сообщение от своего браузера о сертификате
Здесь есть как минимум три очевидных вопроса.
В NET::ERR_CERT_COMMON_NAME_INVALID
сообщает вам, что имя в сертификате не совпадает с именем, которое вы запросили в браузере. В этом есть смысл, поскольку общее имя сертификата равно *.domain.com
пока вы запрашиваете по IP-адресу. Они никогда не совпадут. Вы не даете достаточно информации в своем вопросе, чтобы я мог предложить решение, но, как следует из сообщения об ошибке, имена должны совпадать. Либо у вас должно быть DNS-имя вместо IP-адреса, либо сертификат с IP-адресом вместо имени.
Обратите внимание, что современные браузеры на самом деле не используют CommonName в сертификате (хотя сообщение об ошибке подразумевает, что они используют). Вместо этого они используют расширение SubjectAlternativeName, которое можно увидеть, если щелкнуть вкладку Details и прокрутить вниз.
Кроме того, ваш сертификат действителен только с 15 августа 2017 года по 15 августа 2018 года. Когда я пишу это, это 15 февраля 2019 года, что не совпадает между этими двумя датами. То есть у вашего сертификата также истек срок действия.
Ваш браузер возвращает 403 - Запрещено. Проверьте права доступа к файлам в корневом веб-каталоге (/usr/share/nginx/html
), чтобы убедиться, что они доступны для чтения пользователю / группе, запускающей nginx. Может быть www-data
, в зависимости от вашего дистрибутива.