Итак, мой обратный прокси-сервер Nginx настроен следующим образом.
listen 80;
server_name mydomain.net;
return 301 https://mydomain.net$request_uri;
}
server {
listen 443;
server_name mydomain.net;
ssl_certificate /etc/letsencrypt/live/mydomain.net/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mydomain.net/privkey.pem;
location / {
proxy_pass http://myip:myport;
}
}
But when I try to connect to my website it says "This site can't provide a secure connection, ERR_SSL_PROTOCOL_ERROR. Did I misconfigure SSL?
Вы должны изменить директиву listen для прослушивания с протоколом SSL : listen 80 ;
говорит, что прослушивает соединения http
через порт 80, но прослушивает 443 ssl;
говорит, что прослушивает порт 443 для соединений https
.
конфигурация должна быть следующей:
server {
listen 80;
server_name mydomain.net;
return 301 https://mydomain.net$request_uri;
}
server {
listen 443 ssl;
server_name mydomain.net;
ssl_certificate /etc/letsencrypt/live/mydomain.net/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mydomain.net/privkey.pem;
location / {
proxy_pass http://myip:myport;
}
}
вы также можете комбинировать их. Вы можете удалить свой оператор возврата и объединить все остальные в один блок сервера. просто добавьте этот фрагмент:
if ($scheme = http) {
return 301 https://$host$uri?$args;
}