Я понимаю, что это похоже на дубликат хотя бы нескольких других вопросов, но я прочитал их несколько раз и все еще делаю что-то не так.
Ниже приведено содержимое моего конфигурационного файла myginample.com nginx, расположенного в /etc/nginx/sites-available
.
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name myexample.com www.myexample.com;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
ssl_certificate /etc/letsencrypt/live/myexample.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/myexample.com/privkey.pem;
#Configures the publicly served root directory
#Configures the index file to be served
root /var/www/myexample.com;
index index.html index.htm;
}
Это работает, когда я захожу на https://myexample.com, контент обслуживается и соединение защищено. Так что этот конфиг кажется хорошим.
Теперь, если я изменяю порт ssl на 9443 и перезагружаю конфигурацию nginx, конфигурация перезагружается без ошибок, но посещение https://myexample.com показывает ошибку в браузере (Этот сайт недоступен / myexample.com отказался подключиться. ERR_CONNECTION_REFUSED)
Я пробовал предложения и документацию здесь , здесь и здесь (среди прочего), но всегда получаю ошибку ERR_CONNECTION_REFUSED.
Я должен отметить, что я могу использовать нестандартный порт и затем явно ввести этот порт в URL, например, https://myexample.com:9443 . Но я не хочу этого делать. Я хочу, чтобы пользователь мог набирать myexample.com в любом браузере и автоматически перенаправлять nginx на защищенное соединение.
Опять же, у меня нет никаких проблем, когда я использую стандартный порт 443 SSL.
Изменить: я использую nginx / 1.6.2 на Debian / Джесси
Ответы:
Для поддержки ввода « https://myexample.com » в вашем браузере и обработки его
nginx
конфигурацией, прослушивающей порт 9443, вам потребуется дополнительнаяnginx
конфигурация, которая все еще прослушивает порт 443, поскольку это IP-порт для который подключает браузер .Таким образом:
Обратите внимание, что один и тот же сертификат / ключ необходим для обоих разделов, поскольку сертификат обычно привязан к имени хоста DNS, но не обязательно к порту.
Надеюсь это поможет!
источник
Когда вы набираете https://example.com , стандартом для схемы https: // является подключение к порту 443. В вашем случае вы переместили свой сервер так, что теперь он прослушивает порт 9443. Вы получаете отказ в соединении сообщение из-за этого - по порту 443 ничего не слушается.
Вам нужно будет организовать прослушивание порта 443, который перенаправляет соединения на порт 9443, или использовать порт как часть URL-адреса.
источник
если вы измените порт на нестандартный, такой как 9443, вам нужно добавить перенаправление с 443 на 9443. Установите nginx для обратного прокси на этот порт.
источник