現在、nginx-proxyを使用して、サブドメインを別のDockerコンテナーにルーティングしています。ここで、SSL証明書をOwncloudコンテナに追加したいのですが、正しく設定できません。
私がしたこと:
使用したいすべてのサブドメインを入力した./certbot-auto certonly
を実行して、SAN証明書を取得しようとしました。証明書は、etc/letsencrypt/live/www.mydomain.com
に正常に生成されました。
私のdocker-compose.ymlをざっと見てください:
nginx-proxy:
image: jwilder/nginx-proxy
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/tmp/docker.sock
owncloud:
image: owncloud
expose:
- 80
- 443
environment:
- "VIRTUAL_Host=owncloud.mydomain.com,www.owncloud.mydomain.com"
- "VIRTUAL_PROTO=https"
- "VIRTUAL_PORT=443"
volumes:
- "owncloud-data:/var/www/html"
- "/etc/letsencrypt/live/www.mydomain.com:/root/ssl"
そして、これが私の/etc/Apache2/sites-available/default-ssl.conf
の抜粋です(もちろん、owncloudコンテナからのものです)
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${Apache_LOG_DIR}/error.log
CustomLog ${Apache_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /root/ssl/cert.pem
SSLCertificateKeyFile /root/ssl/privkey.pem
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
# MSIE 7 and newer should be able to use keepalive
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
</IfModule>
https://www.owncloud.mydomain.com
に接続しようとすると、ERR_CONNECTION_REFUSED
エラーが発生します。
何か案は?ありがとうございました。
最後に、docker-compose.yamlが正しくないことがわかりました。これが私の新しい設定です:
nginx-proxy:
image: jwilder/nginx-proxy
ports:
- "80:80"
- "443:443"
volumes:
- /var/local/nginx/certs:/etc/nginx/certs
- /etc/letsencrypt:/etc/letsencrypt
- /var/run/docker.sock:/tmp/docker.sock
owncloud:
image: owncloud
expose:
- 443
environment:
- "VIRTUAL_Host=owncloud.mydomain.com,www.owncloud.mydomain.com"
volumes:
- "owncloud-data:/var/www/html"
私のfullchain.pemとprivkey.pemへのリンクは/ var/local/nginx内にあります