Я пытаюсь прокси-сервер HTTP через nginx. Служба прослушивает порт 8123, и я хочу прокси-сервер на 443. Я создал самозаверяющий сертификат, подобный этому:
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365
Вот полная конфигурация nginx:
events {
worker_connections 768;
}
http {
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_certificate /home/mcmsadm/cert.pem;
ssl_certificate_key /home/mcmsadm/key.pem;
location / {
proxy_pass http://localhost:8123;
}
}
}
Когда я пытаюсь подключиться к серверу, используя Firefox, появляется сообщение PR_END_OF_FILE_ERROR.
Что я делаю не так? Спасибо!
РЕДАКТИРОВАТЬ: Я нашел сообщение об ошибке nginx в журналах (не думал об этом):
SSL_CTX_use_PrivateKey_file("/home/mcmsadm/key.pem") failed
(SSL: error:2807106B:UI routines:UI_process:processing error:while reading strings
error:0906406D:PEM routines:PEM_def_callback:problems getting password
error:0907B068:PEM routines:PEM_read_bio_PrivateKey:bad password read
error:140B0009:SSL routines:SSL_CTX_use_PrivateKey_file:PEM lib)
Я создал сертификат с паролем, но nginx запрашивает его, когда я перезагружаю его через nginx -s reload
. Чтобы временно решить эту проблему, я записал пароль в файл и добавил эту строку в свой nginx.conf
:
ssl_password_file /etc/nginx/pass;
Можно ли как-нибудь избежать ввода пароля в файл?