環境構築:VPS:HTTPS化

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

次のリビジョン
前のリビジョン
環境構築:VPS:HTTPS化 [2022/12/04 22:09] – 作成 白くじら環境構築:VPS:HTTPS化 [2025/04/12 05:15] (現在) – 外部編集 127.0.0.1
行 5: 行 5:
 ##### 前提 ##### 前提
  
 +- ConohaVPS でCentOS を動作させている
 - Apache がインストール済み - Apache がインストール済み
 - グローバルIPアドレスが割り振られている - グローバルIPアドレスが割り振られている
-firewalldを設定済み+firewallにおいてhttpsの接続許可の設定済み
 - 割り当てるドメイン名を取得していること - 割り当てるドメイン名を取得していること
  
 ##### ドメイン名の割り当て ##### ドメイン名の割り当て
 +
 +Conoha のコントールパネルにログインし、「DNS」画面を開く。
 +
 +「+ドメイン」をクリックし、契約しているドメイン名を登録する。
 +
 +登録後、下記のレコードを登録する。(※デフォルトで登録されているものはそのままにしておく)
 +
 +^ タイプ   ^ 名称  ^ TTL ^ 値 ^
 +| A(通常)  | @     | 3600 | <グローバルIPアドレス> |
 +| A(通常)  | www   | 3600 | <グローバルIPアドレス> |
 +
 +##### hostコマンドによる正引きの確認
 +
 +インターネットの繋がっているサーバから下記のコマンドを実行して、正引きできるかを確認する。
 +
 +```
 +$ host <ホスト名>
 +<ホスト名> has address <IPアドレス>
 +```
 +
 +##### Apache httpd用SSL通信モジュールのインストール
 +
 +SSL通信用モジュールである**「mod_ssl」**のインストールを行う。
 +
 +```
 +$ sudo yum install mod_ssl
 +```
 +
 +mod_ssl がApache のモジュールとして登録されたかどうかを下記コマンドで確認する。
 +
 +```
 +$ sudo httpd -M | grep ssl
 + ssl_module (shared)
 +```
 +
 +##### Apache の再起動
 +
 +```
 +$ sudo systemctl restart httpd
 +```
 +
 +##### certbotパッケージのインストール
 +
 +サーバ証明書発行について、「Let's Encrypt」を利用する。
 +
 +利用するために「certbot」という名前のパッケージをインストールする。
 +
 +```
 +$ sudo yum install epel-release (EPELレポジトリをインストールしていれば不要)
 +$ sudo yum list installed | grep epel
 +$ sudo yum install certbot python2-certbot-apache
 +```
 +
 +certbotがインストールされているかを下記コマンドで確認する。
 +
 +```
 +$ which certbot
 + /usr/bin/certbot
 +```
 +
 +##### サーバー証明書の作成
 +
 +httpd に設定したドキュメントルート及び登録したドメイン名を使って、証明書を発行する。
 +
 +```
 +$ certbot certonly --webroot -w <ドキュメントルート> -d <ドメイン名>
 +```
 +
 +コマンド実行すると、対話型のメッセージが表示されるので回答する。
 +
 +回答後、「Congratulations!・・・」と表示されれば証明書の発行は完了
 +
 +表示されたメッセージに証明書の保存場所が記載されている。(「/etc/letsencrypt/live/<ドメイン名>」)
 +
 +ファイルは4種類発行される。
 +
 +- cert.pem: サーバ証明書の本体
 +- chain.pem: 中間証明書
 +- privkey.pem: 秘密鍵ファイル
 +- fullchain.pem: サーバ証明書と中間証明書のセット
 +
 +##### SSL通信用の設定
 +
 +HTTPS通信の設定を変更するために、「ssl.conf」ファイルを行う。
 +
 +```
 +$ sudo cp /etc/httpd/conf.d/ssl.conf{,org}
 +$ sudo vi /etc/httpd/conf.d/ssl.conf
 +
 +下記を変更する
 +SSLCertificateFile /etc/pki/tls/certs/localhost.crt
 +
 +SSLCertificateFile <cert.pem の絶対パス>
 +
 +SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
 +
 +SSLCertificateKeyFile <privkey.pem の絶対パス>
 +
 +SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt
 +
 +SSLCertificateChainFile <chain.pem の絶対パス>
 +```
 +
 +編集後、下記コマンドを実行して設定ファイルが正常か確認する。
 +
 +```
 +$ sudo httpd -t
 + Syntax OK
 +```
 +
 +その後、httpdサービスを再起動する。
 +
 +```
 +$ sudo systemctl restart httpd
 +```
 +
 +##### HTTPS通信の動作確認
 +
 +ブラウザにWebサーバのURLを入力してアクセスする。
 +
 +Chrome の場合、URL欄の横に鍵マークが表示されていることを確認する。
 +
 +##### 更新コマンドの設定
 +
 +発行した証明書は有効期限が90日と決まっている。そのため、1か月に1回程度、証明書を更新すればよい。
 +
 +更新できるかどうかは、下記コマンドでシミュレーションできる。(「--dry-run」がオプション)
 +
 +```
 +$ sudo certbot renew --dry-run
 +```
 +
 +定期的に実行できるように、crontab コマンドに追記する。
 +
 +更新した場合は、httpdサービスを再起動する必要があるため、「--deploy-hook」オプションを指定する。
 +
 +```
 +$ sudo crontab -e
 +
 +毎月1日と15日にコマンドを実行する場合の設定
 +
 +00 3 1 * * certbot renew -q --deploy-hook "systemctl restart httpd"
 +00 3 15 * * certbot renew -q --deploy-hook "systemctl restart httpd"
 +```
 +
 +設定後、下記のコマンドで上記の設定が登録できているか確認する。
 +
 +```
 +$ sudo crontab -l
 +```
 +
 +
 +
 +
  
  
  • 環境構築/VPS/HTTPS化.1670159393.txt.gz
  • 最終更新: 2025/04/12 05:15
  • (外部編集)