Итак, я установил LetsEncrypt на своем сервере Nginx, но не могу подключиться через https. Если я сбегу
curl https://my.domain.com
Тогда я получаю ошибку
curl: (7) Failed to connect to my.domain.com port 443: Connection refused
Так что по какой-то причине мой сервер Nginx не прослушивает порт 443. Если я запустил sudo netstat -anltp, я определенно смогу это увидеть.
tcp 0 0 0.0.0.0:4747 0.0.0.0:*
LISTEN 16145/sshd
tcp 0 0 0.0.0.0:111 0.0.0.0:*
LISTEN 155/rpcbind
tcp 0 0 0.0.0.0:80 0.0.0.0:*
LISTEN 15413/nginx: master
tcp 0 0 0.0.0.0:25 0.0.0.0:*
LISTEN 507/master
tcp 0 0 168.235.68.234:4747 204.148.137.74:10163
ESTABLISHED 17096/0
tcp6 0 0 :::4747 :::*
LISTEN 16145/sshd
tcp6 0 0 :::111 :::*
LISTEN 155/rpcbind
tcp6 0 0 :::80 :::*
LISTEN 15413/nginx: master
tcp6 0 0 :::25 :::*
LISTEN 507/master
Файл конфигурации, доступный для моих сайтов:
server {
listen 443 default_server ssl;
listen [::]:443 default_server ssl;
root /var/www/my_domain/html/;
index index.html index.htm index.php;
server_name my.domain.com;
ssl on;
ssl_certificate /etc/letsencrypt/live/my_domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/my_domain.com/privkey.pem;
location / {
root /var/www/my_domain.com/html/;
index index.html index.php;
}
location /robots.txt/ {
root /var/www/my_domain.com/html/robots.txt;
}
location /.well-known/acme-challenge {
root /var/www/letsencrypt;
}
Мой Nginx.conf:
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
load_module /etc/nginx/modules/ngx_http_fancyindex_module.so;
events {
worker_connections 1024;
}
http {
include mime.types;
include /etc/nginx/sites-enabled/*;
default_type application/octet-stream;
#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 logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
# HTTPS server
#
#server {
#listen 443 ssl;
#server_name localhost;
#ssl_certificate
/etc/letsencrypt/live/my.domain.com/fullchain.pem;
#ssl_certificate_key
/etc/letsencrypt/live/my.domain.com/privkey.pem;
#ssl_session_cache shared:SSL:1m;
#ssl_session_timeout 5m;
#ssl_ciphers HIGH:!aNULL:!MD5;
#ssl_prefer_server_ciphers on;
#location / {
#root html;
#index index.html index.htm;
#}
#}
}
Мой статус UFW:
To Action From
-- ------ ----
22 DENY Anywhere
4747 DENY Anywhere
80 ALLOW Anywhere
443 ALLOW Anywhere
22 (v6) DENY Anywhere (v6)
4747 (v6) DENY Anywhere (v6)
80 (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
Надеюсь, мои два файла conf не беспорядок. Если у кого-то есть идеи о том, почему порт 443 отклоняется, я был бы признателен. Я подумал, может быть, это как-то связано с расположением моих файлов .key, но не был уверен в этом. Также запуск nginx -t работает без ошибок.
Также да, я в курсе, что этот пост NGINX не будет слушать порт 443 существует, но за него проголосовали «не по теме», потому что автор оставил сообщение, и решение так и не было найдено.
Ваш файл конфигурации находится в каталоге sites-available
, но ваша конфигурация nginx включает файлы из sites-enabled
. Вам нужно либо переместить файл в правильный каталог, либо, если вы предпочитаете способ Debian, создать символическую ссылку на свой файл конфигурации в sites-enabled
. Затем перезапустите или перезагрузите nginx.
У меня была похожая ситуация. В моем случае разрешения были другими в моем каталоге с включенными сайтами для сайта, который я пытался загрузить. Я отключил сайт, который не мог подключиться, а затем снова подключился. Теперь этот сайт загружается так же, как и другие. lrwxrwxrwx