Let's encrypt
でSSL証明書を取得して、docker-compose
のnginx
でhppts通信を行いました。
参照したサイトは、下記などになります。
Docker+nginxでHTTPSサーバを簡単に構築
Let's Encrypt で Nginx にSSLを設定する
一応、上手く接続できたのですが、フォルダのアクセス権限でハマりました。
環境はamazon linux 2
になりますが、Let's encryptで取得したSSL証明書は、/etc/letsencrypt/live/www.example.com/
に保存されます。
ここで、liveフォルダのアクセス権限は、
sh
1drwx------ 3 root root 47 Nov 9 02:12 live
となっていまして、ec2-user
ユーザでは、アクセスできないようでした。
なので、root権限で適当なフォルダにpemファイルをコピーして、上手く接続できたのですが、何か他にも良い方法はあるでしょうか。
今回のpemファイルのコピー先は、/home/ec2-user/ssl
になります。
sh
1drwxrwxr-x 2 ec2-user ec2-user 93 Nov 9 05:32 ssl
sh
1[ec2-user@ip-***-***-***-*** ssl]$ ls -la 2total 24 3drwxrwxr-x 2 ec2-user ec2-user 93 Nov 9 05:32 . 4drwx------ 7 ec2-user ec2-user 163 Nov 9 05:31 .. 5-rw-r--r-- 1 root root 1854 Nov 9 03:14 cert.pem 6-rw-r--r-- 1 root root 3749 Nov 9 03:14 chain.pem 7-rw-r--r-- 1 root root 5603 Nov 9 05:32 fullchain.pem 8-rw------- 1 root root 1708 Nov 9 03:14 privkey.pem 9-rw-r--r-- 1 ec2-user ec2-user 692 Nov 9 03:14 README
因みに、コピー元/etc/letsencrypt/live/www.example.com/
のファイルにアクセスして、docker-compose up -d
を行ったところ、下記エラーが表示されました。
恐らく、アクセス権限のエラーだと思います。
[emerg] 1#1: cannot load certificate "/etc/letsencrypt/live/www.example.com/fullchain.pem": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/etc/letsencrypt/live/www.example.com/fullchain.pem','r') error:2006D080:BIO routines:BIO_new_file:no such file)
一応、READMEにはDON'T MOVE
と書かれていました。
回答1件
あなたの回答
tips
プレビュー