差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
環境構築:VPS:HTTPS化 [2022/12/04 22:17] – 白くじら | 環境構築:VPS:HTTPS化 [2025/04/12 05:15] (現在) – 外部編集 127.0.0.1 | ||
---|---|---|---|
行 8: | 行 8: | ||
- Apache がインストール済み | - Apache がインストール済み | ||
- グローバルIPアドレスが割り振られている | - グローバルIPアドレスが割り振られている | ||
- | - firewalldを設定済み | + | - firewallにおいてhttpsの接続許可の設定済み |
- 割り当てるドメイン名を取得していること | - 割り当てるドメイン名を取得していること | ||
行 17: | 行 17: | ||
「+ドメイン」をクリックし、契約しているドメイン名を登録する。 | 「+ドメイン」をクリックし、契約しているドメイン名を登録する。 | ||
- | 登録後、下記のレコードを登録する。 | + | 登録後、下記のレコードを登録する。(※デフォルトで登録されているものはそのままにしておく) |
^ タイプ | ^ タイプ | ||
| A(通常) | | A(通常) | ||
| A(通常) | | A(通常) | ||
+ | |||
+ | ##### hostコマンドによる正引きの確認 | ||
+ | |||
+ | インターネットの繋がっているサーバから下記のコマンドを実行して、正引きできるかを確認する。 | ||
+ | |||
+ | ``` | ||
+ | $ host < | ||
+ | < | ||
+ | ``` | ||
+ | |||
+ | ##### Apache httpd用SSL通信モジュールのインストール | ||
+ | |||
+ | SSL通信用モジュールである**「mod_ssl」**のインストールを行う。 | ||
+ | |||
+ | ``` | ||
+ | $ sudo yum install mod_ssl | ||
+ | ``` | ||
+ | |||
+ | mod_ssl がApache のモジュールとして登録されたかどうかを下記コマンドで確認する。 | ||
+ | |||
+ | ``` | ||
+ | $ sudo httpd -M | grep ssl | ||
+ | | ||
+ | ``` | ||
+ | |||
+ | ##### Apache の再起動 | ||
+ | |||
+ | ``` | ||
+ | $ sudo systemctl restart httpd | ||
+ | ``` | ||
+ | |||
+ | ##### certbotパッケージのインストール | ||
+ | |||
+ | サーバ証明書発行について、「Let' | ||
+ | |||
+ | 利用するために「certbot」という名前のパッケージをインストールする。 | ||
+ | |||
+ | ``` | ||
+ | $ sudo yum install epel-release (EPELレポジトリをインストールしていれば不要) | ||
+ | $ sudo yum list installed | grep epel | ||
+ | $ sudo yum install certbot python2-certbot-apache | ||
+ | ``` | ||
+ | |||
+ | certbotがインストールされているかを下記コマンドで確認する。 | ||
+ | |||
+ | ``` | ||
+ | $ which certbot | ||
+ | / | ||
+ | ``` | ||
+ | |||
+ | ##### サーバー証明書の作成 | ||
+ | |||
+ | httpd に設定したドキュメントルート及び登録したドメイン名を使って、証明書を発行する。 | ||
+ | |||
+ | ``` | ||
+ | $ certbot certonly --webroot -w < | ||
+ | ``` | ||
+ | |||
+ | コマンド実行すると、対話型のメッセージが表示されるので回答する。 | ||
+ | |||
+ | 回答後、「Congratulations!・・・」と表示されれば証明書の発行は完了 | ||
+ | |||
+ | 表示されたメッセージに証明書の保存場所が記載されている。(「/ | ||
+ | |||
+ | ファイルは4種類発行される。 | ||
+ | |||
+ | - cert.pem: サーバ証明書の本体 | ||
+ | - chain.pem: 中間証明書 | ||
+ | - privkey.pem: | ||
+ | - fullchain.pem: | ||
+ | |||
+ | ##### SSL通信用の設定 | ||
+ | |||
+ | HTTPS通信の設定を変更するために、「ssl.conf」ファイルを行う。 | ||
+ | |||
+ | ``` | ||
+ | $ sudo cp / | ||
+ | $ sudo vi / | ||
+ | |||
+ | 下記を変更する | ||
+ | SSLCertificateFile / | ||
+ | ↓ | ||
+ | SSLCertificateFile < | ||
+ | |||
+ | SSLCertificateKeyFile / | ||
+ | ↓ | ||
+ | SSLCertificateKeyFile < | ||
+ | |||
+ | SSLCertificateChainFile / | ||
+ | ↓ | ||
+ | SSLCertificateChainFile < | ||
+ | ``` | ||
+ | |||
+ | 編集後、下記コマンドを実行して設定ファイルが正常か確認する。 | ||
+ | |||
+ | ``` | ||
+ | $ sudo httpd -t | ||
+ | | ||
+ | ``` | ||
+ | |||
+ | その後、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 " | ||
+ | 00 3 15 * * certbot renew -q --deploy-hook " | ||
+ | ``` | ||
+ | |||
+ | 設定後、下記のコマンドで上記の設定が登録できているか確認する。 | ||
+ | |||
+ | ``` | ||
+ | $ sudo crontab -l | ||
+ | ``` | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||