【備忘録】snap版certbotのインストールと「Let’s Encrypt」によるSSL証明書取得方法[https化]

  • URLをコピーしました!

★環境
 OS:CentOS 7
 Webサーバー:Apache/2.4.6

SSLを構築するには「Let’s Encrypt」を使えば無料で手軽に構築できます。

私も「certbot」というツールを使って「Let’s Encrypt」によるSSLを構築してましたが、現在ではこの「certbot」にはsnap版と呼ばれるものに変更されているようなので、apacheによる導入手順をまとめました。

目次

ApacheのSSLモジュールのインストール

ApacheのSSLモジュールが必要になります。

以下コマンドから、モジュールのインストールを確認できます。

httpd -M | grep ssl

インストールされていない場合はインストールします。

yum install mod_ssl

https(443番ポート)のファイアウォールを開ける

SSLはhttpsプロトコル、TCPの443番ポートを使うのでファイアウォールで通信許可を設定します。

firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload

snapdをインストールする

certbotをインストールするために、まずは「snapd」をインストールします。

yum install epel-release
yum install snapd

インストールしたらsnapdを起動するためsystemctlでsnapd.sockeをアクティベーションします。

systemctl enable --now snapd.socket

snapに対してシンボリックリンクを作成します。

ln -s /var/lib/snapd/snap /snap

snapdのコアをインストールする

以下のコマンドでsnapdのコアをインストールします。

snap install core

インストールしたら最新バージョンにリフレッシュします。

snap refresh core

certbotをインストールする

古いパッケージのcertbotを削除

旧版のcertbotを使っている場合は削除しておきます。

※パッケージ管理を使用してる場合はそれで削除[apt、dnf、yum]
rm -rf /usr/bin/certbot

snap版certbotをインストール

snapコマンドを使ってcertbotをインストールします。

snap install –classic certbot

インストールしたらsnapdと同様にcertbotのパスを通します。

ln -s /snap/bin/certbot /usr/bin/certbot

バージョン確認できればインストール完了です。

certbot --version

certbot でSSL証明書取得

certbotを使ってSSL証明書を取得してみます。

以下のコマンドを実行して、いくつかの質問に答えながら入力していきます。

certbot --apache

まずは登録するEメールアドレスを入力します。

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)
 (Enter 'c' to cancel): 

利用規約に同意の上、ACMEサーバーへの登録を求められますので「Y」を入力します。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: 

ACME(Automated Certificate Management Environment の略)

ウェブサーバーと認証局との間の相互作用を自動化するための通信プロトコル

ACMEとは

Let’sEncryptプロジェクトに関する情報配信をメールに送るか尋ねられます。

「Y」か「N」を入力します。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: 

HTTPSをアクティブにするドメインを聞かれます。

apacheに登録されているドメインか、サーバーのドメインが聞かれると思います。

通常は登録ドメインなので「1」を入力します。

Account registered.

Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: example.com
2: **********.vs.sakura.ne.jp
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel):

以下のメッセージが届けば証明書の作成に成功です。

Requesting a certificate for example.com

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/example.com/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/example.com/privkey.pem
This certificate expires on 2022-03-13.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.

Deploying certificate
Successfully deployed certificate for example.com to /etc/httpd/conf.d/vhost-le-ssl.conf
Congratulations! You have successfully enabled HTTPS on https://example.com

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
 * Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
 * Donating to EFF:                    https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

「Let’s Encrypt」の証明書の有効期限は90日(約3ヶ月)です。

有効期限切れ前に証明書を更新しましょう。

証明書のインストール後は、ウェブサーバーにアクセス出来ない場合は、サービスを再起動しましょう。(systemctl restart httpd)

もし証明書のインストールが失敗するようなら、一旦ウェブサーバーを止めてから実施してみましょう。(systemctl stop httpd)

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次