どうも、こっこです。
今回はLinuxOSのCentOS Stream 9でSSL証明を発行してHTTPS通信ができるまでの流れを説明していきます。
いろんなサイトを巡回して記載の通りの流れ、コマンドを実行してもあちこちでエラーが出るので、エラーが出ずにHTTPS通信ができるまでをまとめました。
今回はConohaVPSでドメインを取得しConohaVPSでサーバーを契約して作業を進めていきます。ドメイン取得からサーバーとの紐づけ方法は別の記事でまとめていますので、よろしければご覧ください。
環境
VPS業者 | ConohaVPS |
ドメイン業者 | ConohaVPS |
OS | CentOS Stream 9 |
実際の作業
パッケージ更新
まず最初にパッケージの全更新(これをやらないと作業が進まない)
dnf -y update
Apacheのインストールと設定
//Apacheインストール
dnf -y install httpd
//ウェルカムページ削除
rm -rf /etc/httpd/conf.d/welcome.conf
//Apache設定ファイルを開く
vi /etc/httpd/conf/httpd.conf
Apache設定ファイル内での操作
# 100行目 : コメント解除しサーバー名指定(domainname.comを変更すること)
ServerName www.domainname.com:80
# 149行目 : 変更 (Indexes は削除)
Options FollowSymLinks
# 156行目 : 変更
AllowOverride All
# 169行目 : 必要に応じて追記 (ディレクトリ名のみでアクセスできるファイル名)
DirectoryIndex index.html index.php
# サーバーの応答ヘッダ(最終行に以下を追加)
ServerTokens Prod
NameVirtualHost *:80
# ここもdomainname.comを変更すること
<VirtualHost *:80>
ServerAdmin root@domainname.com
DocumentRoot /var/www/html
ServerName domeinname.com
</VirtualHost>
ここまで完了したらApacheを起動しておく
systemctl enable --now httpd
ファイアウォール関係
//ファイアウォールに追加する(いずれもsuccessが表示されればOK)
firewall-cmd --add-service=http
firewall-cmd --add-service=https
firewall-cmd --runtime-to-permanent
//一度ファイアウォールを再起動する
systemctl restart firewalld
//ファイアウォールリスト確認
firewall-cmd --list-all
//httpとhttpsが追加されていればOK
services: cockpit dhcpv6-client http https ssh
SSL証明関係のインストール
1行ずつコピペするだけの作業です。
dnf install -y mod_ssl openssl
dnf install -y epel-release
dnf install -y snapd
systemctl enable --now snapd.socket
ln -s /var/lib/snapd/snap /snap
ここでちょっと時間をおいてください。時間をおかないとエラーメッセージが表示されます(error: too early for operation, device not yet seeded or device model not acknowledged)。
snap install core
snap refresh core
snap install --classic certbot
ln -s /snap/bin/certbot /usr/bin/certbot
証明書を追加する作業
//証明書追加前に一旦Apacheを再起動
systemctl restart httpd
certbot --apache
上記コマンドから以下の対応を進めてください。
メアドを入力
↓
同意する?→Y
↓
メール送ってもいい?→Y
↓
表示されたドメインを番号で指定
ここでドメイン名が表示されない場合はApacheの設定ファイルでミスがある、設定がされていない可能性あり
↓
完了
//最後にApacheを再起動
systemctl restart httpd
表示テストしてみる
適当なhtmlファイルを作成する
<html>
<head>
<title>表示タイトル</title>
</head>
<body>
<h1>表示テスト</h1>
</body>
</html>
こんな簡単なhtmlページを作成し、https://domainname.comのような形式であなたの取得したドメイン名でブラウザからアクセスしてみてください。
エラー等が出ずにページが表示されれば成功です。
念の為アドレスバー左にあるメニューをクリックし、「この接続は保護されています」と表示があれば問題はありません。証明書も発行されているのでご自身で確認してみてください。
まとめ
いかがだったでしょうか?
今回はCentOS Stream 9でSSL証明を発行してHTTPS通信ができるまでの方法をまとめました。
CentOS Stream 9であれば上記方法をコピペしていくだけでページ公開ができると思います。問題が発生した場合はどの段階で問題があるのか、エラーログ等も確認してやり直してください。私は最近10サーバーに10ドメインを紐づけてHTTPS通信での公開が成功しました。
ではまた!