「Let's Encrypt」から無料の証明書を取得
「Let’s Encrypt」とは
Let’s Encryptは、無料で自動化されたオープンな認証局です。
Let’s Encrypt(CA)から証明書(ファイルの一種)を取得できます。ただし、Let’s EncryptからWebサイトのドメインの証明書を取得するには、ドメインに対する制御を実証する必要があります。
詳しくはLet’s Encrypt公式サイトをご覧ください。
「Let’s Encrypt」の使い方
Let’s Encryptは、証明書を取得するためのいくつかの方法を提供します。
ここでは、Let’s Encryptのクライアントソフトを利用した方法の例を説明します。
準備
- ドメインが必要です。ここでは例として、ドメインを「example.brekeke.com」とします。
- インターネットからTCPポート80にアクセスします。
- Webサーバーはhttpプロトコル(TCP 80)で実行されます。この例では、ファイルを「http://example.brekeke.com/」ディレクトリに置く必要があります。
- certbotをインストールします。ここ(https://certbot.eff.org/) から入手できます。ここでは例として、certbotを「/usr/local/bin/」ディレクトリにインストールします。
手順
- SSHを使用してWebサーバーにログインします。
- 次のコマンドを実行して、手動オプションでCertbotクライアントを実行します。
sudo /usr/local/bin/certbot-auto certonly --manual -d <ドメイン> -m <メールアドレス>
例1:RSA秘密キーを使用する場合
sudo /usr/local/bin/certbot-auto certonly --manual -d example.brekeke.com -m mail@brekeke.com
例2:ECDSA秘密キーを使用する場合
sudo /usr/local/bin/certbot-auto certonly --key-type ecdsa --manual -d example.brekeke.com -m mail@brekeke.com
TUI(Text User Interface)のダイアログが表示されます。
- 「Are you OK with your IP being logged?」というメッセージが表示されたら、ダイアログで「Yes」を選択します。
以下の例のように、認証に必要なファイルと内容が表示されます。
Webサーバーに次のコンテンツが表示されていることを確認してください。http://example.brekeke.com/.well-known/acme-challenge/6BpLwE3bboPLg2XWIqDYA-ogAQMSaud9BTwMWrU92yw before continuing: 6BpLwE3bboPLg2XWIqDYA-ogAQMSaud9BTwMWrU92yw.-nf-U8XW0o296xhGfELwQ2f3yCHBpwG-r6dCBelhPLs
※「Press Enter to Continue」のメッセージが表示され てもEnterキーを押さないでください。
- 以下の表示内容をコピーし、ファイルに貼り付けます。
次に、そのファイルをWebサーバーの指定したディレクトリに配置します。URL: http://example.brekeke.com/.well-known/acme-challenge/6BpLwE3bboPLg2XWIqDYA-ogAQMSaud9BTwMWrU92yw Content: 6BpLwE3bboPLg2XWIqDYA-ogAQMSaud9BTwMWrU92yw.-nf-U8XW0o296xhGfELwQ2f3yCHBpwG-r6dCBelhPLs
- URL(http://example.brekeke.com/.well-known/acme-challenge/6BpLwE3bboPLg2XWIqDYA-ogAQMSaud9BTwMWrU92yw)を使用して、インターネット経由でファイルを表示できるかどうかを確認します。
- 「Press Enter to Continue」メッセージが表示される画面でEnterキーを押します。
Let’s Encryptは認証用のアドレスにアクセスします。 - 以下のメッセージが表示されれば、証明書の取得は完了です。
Conguratulations! ...
- 証明書ファイルは「/etc/letsencrypt/live/<ドメイン>/」ディレクトリに保存されます。
・サーバー証明書(公開鍵):cert.pem
・中間証明書:chain.pem
・サーバー証明書と中間証明書を組み合わせたファイル:fullchain.pem
・秘密鍵:privkey.pem - 認証手順のために開いたTCPポート80を閉じます。
証明書ファイルをTomcatで使用されるキーストア(JKS)形式に変換する方法はこちらを参照してください。