Nginxでsslのリバースプロキシを試すには
Rocky Linux release 8.5 で
現在192.168.1.10のポート10201で動いているサービスがあります。
このポートを省略するために、下記のファイルnginx.confを準備して
http {
server {
listen 80;
server_name hoge.org;
location / {
proxy_pass http://192.168.1.10:10201/;
proxy_redirect off;
}
}
}
dockerコンテナを起動しました。
$ docker run --name reverse_proxy -v /work/https-nginx/nginx.conf:/etc/nginx/nginx.conf --rm -d -p 80:80 nginx
ブラウザから http://192.168.1.10/
にアクセスすると、これまでのポート番号を指定しなくても、ポート10201にアクセスすることができました。
これをhttpに変更しようと、下記のように変更して、
[nginx443.conf]
http {
server {
listen 443;
server_name hoge.org;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
location / {
proxy_pass http://192.168.1.10:10201/;
proxy_redirect off;
}
}
}
下記のようにコンテナを起動しましたが、docker psで確認するとコンテナは起動せす下記のエラーが表示されました。
cannot load certificate "/etc/nginx/ssl/server.crt"
$ docker run --name reverse_proxy -v /work/https-nginx/nginx443.conf:/etc/nginx/conf.d/ssl.conf --rm -p 443:443 nginx
2022/12/14 06:28:11 [emerg] 1#1: cannot load certificate "/etc/nginx/ssl/server.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/etc/nginx/ssl/server.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)
nginx: [emerg] cannot load certificate "/etc/nginx/ssl/server.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/etc/nginx/ssl/server.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)
ssl_certificateとssl_certificate_keyで指定した鍵が存在するかを確認しましたが、ここは問題がないようです。
$ ls -lh /etc/nginx/ssl/server.crt
-rw-r--r-- 1 root root 1.2K 12月 13 14:43 /etc/nginx/ssl/server.crt
$ ls -lh /etc/nginx/ssl/server.key
-rw------- 1 root root 1.7K 12月 13 14:41 /etc/nginx/ssl/server.key
"No such file or directory"に対してどこを修正すれば良いのでしょうか。