サイトにSSLの導入が一般的になり、VPS内にある仮サイトや開発用のサイトにもSSLを入れる必要が出てきました。
以前は自前の証明書(通称オレオレ証明書)で対応していたのですが、最近はきちんと外部証明書がないとブラウザが警告をいちいち出すようになり、自前の証明書は使えなくなってしまいました。
流石にテストサイトに有料SSLは導入してもらえないので、無料のSSLを導入することになりました。
無償のSSLといえばLet’s Encryptが一般的ですが、以前利用してた導入ツールのcertbotが使えなくなったので、備忘録を兼ねてSnapの導入記録を残すことにしました。
クリーナップ
Let’s Encryptクライアントcertbotが導入されていたら アンインストールする
yum remove certbot
snapdのインストール
EPELリポジトリからSnapをインストールする
yum install epel-release
yum –enablerepo=epel install snapd
snapdのサービス自動起動設定と起動
systemctl enable –now snapd.socket
シンボリックリンク作成
ln -s /var/lib/snapd/snap /snap
coreパッケージをインストール、アップデート
snap install core
snap refresh core
バージョン確認
snap –version
Let’s Encryptクライアントのインストール
Snapからcertbotコマンドをインストール
snap install –classic certbot
シンボリックリンクを作成
ln -s /snap/bin/certbot /usr/bin/certbot
バージョン確認
certbot –version
Let’s Encrypt証明書の取得
/usr/bin/certbot certonly \
Apacheの設定
証明書: /etc/letsencrypt/live/{設定するドメイン名}/cert.pem
秘密鍵: /etc/letsencrypt/live/{設定するドメイン名}/privkey.pem
中間証明書: /etc/letsencrypt/live/{設定するドメイン名}/chain.pem
証明書+中間証明書: /etc/letsencrypt/live/{設定するドメイン名}/fullchain.pem
ファイル名:/etc/httpd/conf.d/ssl_{設定するドメイン名}.conf
DocumentRoot "/var/www/{設定するドメイン名}/htdocs"
ServerName {設定するドメイン名}
<Directory "/var/www/certbot/{設定するドメイン名}/htdocs/">
Require all granted
Options None
Require all granted
</Directory>
SSLCertificateFile /etc/letsencrypt/live/{設定するドメイン名}/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/{設定するドメイン名}/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateChainFile /etc/letsencrypt/live/{設定するドメイン名}/fullchain.pem