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
基本的には下記のサイトを参考に、取得したい文字列のドメインで登録する。
この際に、下記2点に注意する。
- 取得したいドメインを検索する際には「xxx.tk」のようにトップレベルドメインまで指定して検索する
- 登録する際は、アカウントの電話番号が使われている携帯のモバイル通信を使用して操作を行う。(登録完了後はWi-fiでOK)
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欄が鍵マークになっていることを確認する。
コメント