[ホスト側] 証明書をつくる
$ cd /etc/nginx/
$ sudo openssl genrsa -des3 -out server.key 1024
$ sudo openssl req -new -key server.key -out server.csr
$ sudo cp server.key server.key.org
$ sudo openssl rsa -in server.key.org -out server.key
$ sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
[ホスト側] Nginxの設定
CentOS7ではサンプルが置いてあったのでそれを基に設定しました
docker run
時に、-p [コンテナ側のポート]:443
を指定します
$ cd /etc/nginx/conf.d/
$ sudo cp example_ssl.conf docker_ssl.conf
$ vim /etc/nginx/conf/docker_ssl.conf
server {
client_max_body_size 500M;
listen 443 ssl;
server_name [ドメイン];
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_pass https://127.0.0.1:[コンテナ側のポート]/;
break;
}
}
[リモート側] Apacheの設定
VirtualHostディレクティブ(*:443)を新規追加。ssl関連の記述を追記
<VirtualHost *:443>
SSLEngine on
#SSLProtocol all -SSLv2
#SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
DocumentRoot "/path/to/docroot/"
ServerName [ドメイン]
CustomLog "/var/log/httpd/vhost/example.com-ssl_access.log" combined
ErrorLog "/var/log/httpd/vhost/example.com-ssl_error.log"
<Directory "/path/to/docroot/">
Allowoverride All
Require all granted
</Directory>
</VirtualHost>