目次

Let's Encrypt

プログレス合同会社では、コーポレートサイトのSSL証明書は対外的に誰もが証明書発行者を確認できるように、サイトシールが提供されている証明書を採用しています。
しかし、WikiページやメールサーバーのSSL証明書につきましてはその必要がないため、Let's EncryptでSSL証明書を発行してもらっています。

1.certbotのインストール

ドメイン使用権の認証をウェブサーバーで行わせるため、Nginx(Webサーバー)のDockerコンテナをビルドする際にcertbotを一緒にインストールしています。
<html>

:
apk add –no-cache ca-certificates openssl pcre luajit expat logrotate certbot;
:

</html>

2.SSL証明書の取得

SSL証明書の取得は、Nginx(Webサーバー)のDockerコンテナに入って行います。
<html>

certbot certonly \ …(1)

  1. -webroot \ …(2)
  2. w /home/web/letsencrypt \ …(3)
  3. d wiki.example.co.jp \ …(4)
  4. -email letsencrypt@example.co.jp \ …(5)
  5. -config-dir /opt/config/letsencrypt \ …(6)
  6. -agree-tos \ …(7)
  7. n …(8)

(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>

3.SSL証明書の設定(Nginx)

取得した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>