@beerurri
Прогер-любитель

Почему сайт открывается только по HTTP?

Проблема: сайт открывается только по HTTP, по HTTPS висит и выкидывает "не удаётся получить доступ к сайту"

Вводные: Инстанc AWS EC2, Ubuntu 20.04 LTS, Nginx, сервер на ASP.NET Minimal API на порту 3000, домен и SSL-сертификат DomainSSL от reg.ru.
Пробовал запускать сервер python3 -m http.server 3000, проблема аналогичная (так что, вероятно, можно исключить проблему именно сервера).

sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
Nginx Full                 ALLOW       Anywhere
OpenSSH                    ALLOW       Anywhere
Nginx Full (v6)            ALLOW       Anywhere (v6)
OpenSSH (v6)               ALLOW       Anywhere (v6)


Конфиг /etc/nginx/nginx.conf
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
	worker_connections 768;
	# multi_accept on;
}

http {

	##
	# Basic Settings
	##

	sendfile on;
	tcp_nopush on;
	types_hash_max_size 2048;
	# server_tokens off;

	# server_names_hash_bucket_size 64;
	# server_name_in_redirect off;

	include /etc/nginx/mime.types;
	default_type application/octet-stream;

	##
	# SSL Settings
	##

	ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
	ssl_prefer_server_ciphers on;

	##
	# Logging Settings
	##

	access_log /var/log/nginx/access.log;
	error_log /var/log/nginx/error.log;

	##
	# Gzip Settings
	##

	gzip on;

	# gzip_vary on;
	# gzip_proxied any;
	# gzip_comp_level 6;
	# gzip_buffers 16 8k;
	# gzip_http_version 1.1;
	# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

	##
	# Virtual Host Configs
	##

	include /etc/nginx/conf.d/*.conf;
	include /etc/nginx/sites-enabled/*;
}


#mail {
#	# See sample authentication script at:
#	# http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#
#	# auth_http localhost/auth.php;
#	# pop3_capabilities "TOP" "USER";
#	# imap_capabilities "IMAP4rev1" "UIDPLUS";
#
#	server {
#		listen     localhost:110;
#		protocol   pop3;
#		proxy      on;
#	}
#
#	server {
#		listen     localhost:143;
#		protocol   imap;
#		proxy      on;
#	}
#}


Этот конфиг сделал по какому-то шаблону с docs.microsoft.com:
Конфиг /etc/nginx/sites-available/reverse-proxy
upstream _site {
	server 127.0.0.1:3000;
}


server {
  listen 80;
  server_name site.ru;
  
  location / {
        proxy_pass http://_site;
	proxy_http_version 1.1;
	proxy_set_header   Upgrade $http_upgrade;
	proxy_set_header   Connection keep-alive;
	proxy_set_header   Host $host;
	proxy_cache_bypass $http_upgrade;
	proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
	proxy_set_header   X-Forwarded-Proto $scheme;
    }


}

server {
	listen 443 ssl http2;
	listen [::]:443 ssl http2;
	server_name site.ru;
	ssl_certificate /etc/ssl/site.crt
	ssl_certificate_key /etc/ssl/site.key
	ssl_session_timeout 1d;
	ssl_protocols             TLSv1.2 TLSv1.3;
	ssl_prefer_server_ciphers off;
	ssl_ciphers               ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
	ssl_session_cache         shared:SSL:10m;
	ssl_session_tickets       off;
	ssl_stapling              off;

	add_header X-Frame-Options DENY;
	add_header X-Content-Type-Options nosniff;

	location / {
		proxy_pass http://_site;
	}

}


SSL-сертификат от reg.ru получил в письме в текстовом виде, сформировал файл по их же инструкции:
Структура сертификата

-----BEGIN CERTIFICATE-----
#Ваш сертификат#
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
#Промежуточный сертификат#
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
#Корневой сертификат#
-----END CERTIFICATE-----


Чё за фигня?

UPD 30.08.2022
Всем спасибо за помощь!
Как писал вчера vilinyh (а сейчас он недоступен и его комментария нет), дело было в файрволле AWS в консоли управления. Порт 443 открыт не был, а я совсем забыл про существование файрволла со стороны AWS. Порты 80 и 22 были уже открыты, поэтому SSH и HTTP работали. Сейчас порт 443 открыл, и всё работает ок с такими конфигами.
  • Вопрос задан
  • 361 просмотр
Пригласить эксперта
Ответы на вопрос 2
ky0
@ky0
Миллиардер, филантроп, патологический лгун
Для начала перенесите конфиг или сделайте линк из /etc/nginx/sites-available в /etc/nginx/sites-enabled.
Ответ написан
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Команда netstat -nltp покажет процессы, сидящие на TCP-портах, 443 там есть? Команда telnet 127.0.0.1 443 покажет, отвечает этот порт, или вообще нет?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы