1.目的
仮想環境でwebサーバーを構築し、webページが表示されるのを確認する。
2.環境
- Windows11
- VirtualBox7.0
- Ubuntu24.04.01 LTS
- Apache/2.4.58
- OpenSSL3.0.13
3.前提
- VirtualBoxとUbuntuのisoイメージファイルはダウンロードし仮想マシンを立てておく
4.構築手順
1.Apache2のインストール
Apache2をインストールするには管理者権限が必要になるので、root権限またはsudoコマンドでインストールを行う
1.1 Apache2をインストール
$ sudo apt install apache2 -y
Apache2のインストールが完了したら、起動とバージョンを確認。
$ systemctl status apache2
apache2.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/apache2.service; enabled; preset: enabled)
Active: active (running) since Wed 2024-12-11 00:16:36 UTC; 1h 11min ago
Docs: https://httpd.apache.org/docs/2.4/
Process: 1167 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Main PID: 1173 (apache2)
Tasks: 55 (limit: 2276)
Memory: 9.7M (peak: 9.9M)
CPU: 966ms
CGroup: /system.slice/apache2.service
tq1173 /usr/sbin/apache2 -k start
tq1175 /usr/sbin/apache2 -k start
mq1176 /usr/sbin/apache2 -k start
$ apachectl -v
Server version: Apache/2.4.58 (Ubuntu)
Server built: 2024-10-02T12:40:51
1.2 ブラウザを起動し、プライベートIPアドレスでアクセス
※IPアドレスはip addrコマンドで確認しておく
Apacheのデフォルトページが表示されていれば、OK。
2.SSL証明書の作成
暗号化されたhttpsで通信するにはSSL証明書が必要になる。
外部に公開するつもりはないので、自己署名証明書を使用する。
2.1 rootユーザーに変更
$ su -
2.2 秘密鍵を作成
# cd /etc/ssl/private
# openssl genrsa -out <任意のファイル名> 2048
- genrsa: rsa暗号方式の秘密鍵を作成
- -out: 作成した秘密鍵を出力するファイル名を指定(拡張子: key)
- 2048: 鍵長の指定(bit単位)
2.3 CSR(証明署名要求)を作成
# openssl req -new -key <秘密鍵> -out <任意のファイル名> -days 365
- req: CSRの操作するサブコマンド
- -new: 新規のCSRを作成
- -key: CSRの署名に使用する秘密鍵を指定
- -out: 作成したCSRを出力するファイル名を指定(拡張子: csr)
- -days: 有効期間を指定(日数)
実行すると、プロンプト上で証明書の情報の入力が求められる。
証明書の情報(英語表記) | 意味 |
---|---|
Country Name (2 letter code) | 国名(2文字) |
State or Province Name | 都道府県名 |
Locality Name | 市区町村名 |
Organization Name | 組織名 |
Organizational Unit Name | 会社や組織の部署名 |
Common Name | 氏名またはサーバのホスト名 |
Email Address | メールアドレス |
2.4 自己署名証明書を作成
作成したCSRを基に秘密鍵を使用して作成する。
# openssl x509 -req -signkey <秘密鍵> -in <CSRファイル> -out <任意のファイル名>
-days 365
- x509: X.509証明書を操作するサブコマンド
- -req: CSRから情報を取得して証明書を作成
- -signkey: 証明書に署名するための秘密鍵の指定
- -in: CSRファイルの指定
- -out: 作成した証明書を出力するファイル名を指定(拡張子: crt)
- -days: 有効期間を指定(日数)
3.Apache2の設定変更
作成した秘密鍵と自己署名証明書を指定するためにApache2の設定ファイルを修正する。
3.1 default-ssl.confを修正
/etc/apache2/sites-available/default-ssl.conf
SSLCertificateFile /<自己署名証明書> #自己署名証明書の絶対パスを指定
SSLCertificateKeyFile /<秘密鍵> #秘密鍵の絶対パスを指定
4.SSLの有効化とApache2の再起動
4.1 SSLモジュールの有効化
# a2enmod ssl
4.2 SSLの有効化
# e2ensite default-ssl
4.3 Apache2の再起動
# systemctl restart apache2
4.4 ブラウザを起動し、httpsでアクセス
使用した証明書が自己署名証明書であるため、ERR_CERT_AUTHORITY_INVALIDのエラーメッセージが表示されるが、
詳細設定からxxxにアクセスする(安全ではありません)をクリックするとApache2のデフォルトページを表示することができる