プログレス合同会社では、コーポレートサイトのSSL証明書は対外的に誰もが証明書発行者を確認できるように、サイトシールが提供されている証明書を採用しています。
しかし、WikiページやメールサーバーのSSL証明書につきましてはその必要がないため、Let's EncryptでSSL証明書を発行してもらっています。
ドメイン使用権の認証をウェブサーバーで行わせるため、Nginx(Webサーバー)のDockerコンテナをビルドする際にcertbotを一緒にインストールしています。
<html>
:
apk add –no-cache ca-certificates openssl pcre luajit expat logrotate certbot;
:
</html>
SSL証明書の取得は、Nginx(Webサーバー)のDockerコンテナに入って行います。
<html>
certbot certonly \ …(1)
(1) 証明書の発行のみを行います<br>
(2) ウェブサーバーでドメイン使用権の認証を行います<br>
(3) ドメイン使用権の認証用ファイルの作成先ディレクトリです<br>
(4) 発行する証明書のドメイン(ホスト)名です<br>
(5) Let's Encryptからの通知を受け取るメールアドレスを指定します<br>
(6) 発行された証明書が格納されるディレクトリです<br>
(7) ACME利用規約に同意します<br>
(8) ユーザーからの入力を一切求めずに実行します<br>
config-dirについては、証明書データを永続化するため規定のディレクトリ(/etc/letsencrypt)とは別のディレクトリを指定しています。
</html>
取得したSSL証明書をNginxで使用するには、該当サーバーの定義にSSL証明書の設定を追記します。
下記はwiki.example.co.jpのサーバー定義です。
<html>
server {
listen 80; server_name wiki.example.co.jp; <span class="font__red">return 301 https://$server_name$request_uri;</span>
}
server {
listen <span class="font__red">443 ssl</span> http2; server_name wiki.example.co.jp; ssl_certificate <span class="font__red">/opt/config/letsencrypt/live/</span>wiki.example.co.jp/fullchain.pem; ssl_certificate_key <span class="font__red">/opt/config/letsencrypt/live/</span>wiki.example.co.jp/privkey.pem; :
}
・ httpでのリクエストはhttpsへリダイレクトさせます<br>
・ SSL証明書は/opt/config/letsencrypt/live/内の該当サーバーのディレクトリに作成されています
</html>