Linux

CentOS Stream 9でSSL証明を発行してHTTPS通信ができるまで

どうも、こっこです。

今回はLinuxOSのCentOS Stream 9でSSL証明を発行してHTTPS通信ができるまでの流れを説明していきます。

いろんなサイトを巡回して記載の通りの流れ、コマンドを実行してもあちこちでエラーが出るので、エラーが出ずにHTTPS通信ができるまでをまとめました。

今回はConohaVPSでドメインを取得しConohaVPSでサーバーを契約して作業を進めていきます。ドメイン取得からサーバーとの紐づけ方法は別の記事でまとめていますので、よろしければご覧ください。

環境

VPS業者ConohaVPS
ドメイン業者ConohaVPS
OSCentOS 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通信での公開が成功しました。

ではまた!