@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 открыл, и всё работает ок с такими конфигами.
  • Вопрос задан
  • 269 просмотров
Пригласить эксперта
Ответы на вопрос 2
ky0
@ky0
Миллиардер, филантроп, патологический лгун
Для начала перенесите конфиг или сделайте линк из /etc/nginx/sites-available в /etc/nginx/sites-enabled.
Ответ написан
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Команда netstat -nltp покажет процессы, сидящие на TCP-портах, 443 там есть? Команда telnet 127.0.0.1 443 покажет, отвечает этот порт, или вообще нет?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы