0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Webサーバー構築

Posted at

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コマンドで確認しておく

スクリーンショット 2024-12-11 110643.png

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でアクセス

スクリーンショット 2024-12-11 164007.png

使用した証明書が自己署名証明書であるため、ERR_CERT_AUTHORITY_INVALIDのエラーメッセージが表示されるが、
詳細設定からxxxにアクセスする(安全ではありません)をクリックするとApache2のデフォルトページを表示することができる

スクリーンショット 2024-12-11 165109.png

5.参考

とほほのOpenSSL入門

6.関連

【OpenSSL】localhost を https 化する 自己証明書の作成方法

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?