無料でSSL化(https)対応をする(CentOS7)

Linuxhttps,Let’s Encrypt,ssl

 

Chromeのバージョンアップにより、SSLが設定されていないWebサイトはアドレスバーに【保護されていません】と警告が表示されることになりました。
そのため最近になって対応した方も多いはず。

初心者の方にとっては敷居が高いように思うかもしれませんが、無料証明書の「Let’s Encrypt」を使えばコマンドだけでSSL化対応を行うことができます。

 

CentOS8でのSSL対応手順

当記事はCentOS7でのSSL対応手順なので、CentOS8での手順は↑記事になります。

 

参考サイト

導入にはいくつかの前提があります

前提に問題がなければサーバーにログインし、いくつかのコマンドを実行します。
ちなみにOSはCentOS7を使用しています。

 

ドメイン認証( DV )SSL / TLS証明書に限られる

ドメインの所有者であることは証明できるが、企業の実在証明などには使えない。

 

有効期限が90日間である

通常の証明書は1年が基本ですが、Let’s Encryptはだいぶ短いです。

しかしcronを活用すれば解決。

 

rootユーザーでコマンド入力できる

使用するコマンドはroot権限が必要です。

 

独自ドメインを持っている

IPアドレスでは設定できません。

 

コマンドを入力する

# ApacheのSSLモジュールであるmod_sslがインストールされているか確認
$ httpd -M | grep ssl_module

# 下記が表示されればOK
...
ssl_module (shared)
...

# ない場合はインストール
$ yum install -y mod_ssl

# httpsポートの開放がまだなら実行
$ firewall-cmd --permanent --zone=public --add-service=https
$ firewall-cmd --reload

# Let’s Encryptのインストール
$ yum install certbot python2-certbot-apache
# hoge.comの箇所に設定したいドメインをwwwなしで入力
$ certbot --apache -d hoge.com

# certbotコマンドの実行中にもし下記のエラーが表示されたら設定が必要
パッケージ certbot は利用できません。
パッケージ python-certbot-apache は利用できません。
# [epel]のenabled=0を1に修正
$ vi /etc/yum.repos.d/epel.repo

# エラーがない場合は入力を求められるので任意の問いを入力
# 自分のメールアドレスを入力
Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): 
# 規約の同意を選択
(A)gree/(C)ancel:
# Let's EncryptパートナーにEmailを公開するか否か。私はNoにしました
(Y)es/(N)o:
# どのvirtual hostを選択するか。1のssl.confを選択
Press 1 [enter] to confirm the selection (press 'c' to cancel):
# HTTPSアクセスが必須か選択。2のリダイレクトを選択
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

# 設定が完了したらapacheの再起動を実行
$ systemctl restart httpd

# Let’s Encryptの有効期限が90日なので、自動で更新コマンドを実行するようにcronの設定を行う
$ vi /etc/crontab

# 毎日午前三時に更新コマンドを実行する
0 3 * * * root /usr/bin/certbot renew

 

設定したドメインをブラウザで表示し、URL欄に「保護された通信」と表示されていれば成功です。

Linuxhttps,Let’s Encrypt,ssl