目次

HTTPS

参考:CentOS 7とApacheをインストールした環境にLet's EncryptでHTTPSを設定 - レムシステム エンジニアブログ

環境設定

ファイアフォールの設定

firewall-cmd –list-all で「https」が許可されていない場合、下記のコマンドを実行する。

 $ sudo firewall-cmd --add-service=https --permanent
 success
 $ sudo firewall-cmd --reload
 success
mod_ssl パッケージのインストール
$ sudo yum install mod_ssl
certbot パッケージのインストール
$ sudo yum install certbot python2-certbot-apache

※ EPELレポジトリがインストールされている必要がある。

ドメインの取得

Freenom を利用したドメイン取得

取得サイト:Freenom - A Name for Everyone

基本的には下記のサイトを参考に、取得したい文字列のドメインで登録する。

完全無料の独自ドメインを取得できるFreenomの使い方

この際に、下記2点に注意する。

A(Addresss)レコードの設定

Freenom の「ターゲット」にドメインと紐づけしたいIPアドレスを入力する。

設定したアドレスがグローバルIPアドレスであれば、設定後、ブラウザにドメインを入力してアクセスできるようになる。

ローカルネットワーク内の機器のIPアドレス(192.168.xxx.xxx)を割り当てた場合、次の手順が必要となる。

hostファイルの設定(Windows)

hostファイルを設定し、登録したドメインと紐づけを行う。

エクスプローラのパス入力欄に「C:\Windows\System32\drivers\etc」を入力する。

フォルダ内の「host」ファイルのバックアップファイルを作成する。(「host.org」等の名前で)

hostファイルに下記を入力して、上書き保存する。

<Aレコードに記載のIPアドレス> <登録したドメイン>

設定後、ブラウザにドメインを入力して、期待のページが表示されていればOK

証明書の発行

参考:

certbot コマンドの実行
$ sudo certbot certonly --manual --preferred-challenges dns -d <ドメイン名>

実行すると、メールアドレスの入力や、同意等の質問があるので、回答する。

回答後、以下のメッセージが表示される。

Please deploy a DNS TXT record under the name
_acme-challenge.<登録ドメイン> with the following value:

xxx(数十個の文字数)

Before continuing, verify the record is deployed.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continue

Freenom に下記のレコード登録を行う。

Name Type TTL Target
_acme-challenge.<登録ドメイン> TXT 300 <表示文字列>

保存後、反映には時間がかかる。反映されたかどうかを確認するには、下記のコマンドを実行する。

$ sudo dig @80.80.80.80 -t TXT _acme-challenge.<登録ドメイン>

上記コマンド実行し、「ANSWER SECTION」が表示されれば、certbotコマンドの「Enter」キーを押下する。

最後に、「ongratulations! Your certificate and chain have been saved at」が表示されればOK

Apache の設定

ssl.conf のコピー

下記のコマンドを実行し、「/etc/httpd/conf.d/ssl.conf」のバックアップファイルを作成する。

$ sudo cp /etc/httpd/conf.d/ssl.conf{,.org}
ssl.conf の編集

下記の項目を編集する。

SSLCertificateFile /etc/pki/tls/certs/localhost.crt
     ↓
SSLCertificateFile /etc/letsencrypt/live/<ドメイン>/cert.pem


SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
     ↓
SSLCertificateKeyFile /etc/letsencrypt/live/<ドメイン>/privkey.pem


SSLCertificateKeyFile /etc/letsencrypt/live/www.testdom.com/privkey.pem
   ↓
SSLCertificateChainFile /etc/letsencrypt/live/<ドメイン>/chain.pem

編集後、下記のコマンドを実行し、「Syntax OK」が表示されればOK

$ sudo httpd -t
httpd の再起動
$ sudo systemctl restart httpd

以上で、https化の設定が終わり。ブラウザにアクセスすると、URL欄が鍵マークになっていることを確認する。