Apache(Webサーバ)でSSL環境の構築と起動

Apache(Web)サーバでSSL(https)を実装した環境構築の手順をメモします。

SSLに必要な証明書の作成はオレオレ証明書を作り、Webサーバへ適用します。

LinuxOSで構築したWebサーバ(Apache)のインストール手順は以下を参考にしてください。

Apache(Webサーバ)でSSL環境の構築(自己証明書)

Webサーバの環境をSSL(https)化する際には「証明書」が必要となります。
以下では、自己証明書(オレオレ証明書)を作成してApacheへ適用するまでの手順となります。

自己証明書の作成

事前に以下、SSLモジュールのインストールを実施します。

・SSLモジュールのインストール

$ sudo yum -y install mod_ssl

秘密鍵の作成

SSLモジュールをインストール後、以下コマンドで秘密鍵を作成します。
パスワードは任意のキーを入力します。※パスワードのメモは忘れないように取っておきます。

$ openssl genrsa -aes128 2048 > server.key
Generating RSA private key, 2048 bit long modulus
.......................+++
...........+++
e is 65537 (0x10001)
Enter pass phrase:
Verifying - Enter pass phrase:

CSR「公開鍵」の作成

続いて、事前に作成した秘密鍵から公開鍵と所有者情報を作成します。
12行目以下は、必要情報を入力します。
※パスワードは入力しなくても大丈夫です。

$ openssl req -new -key server.key > server.csr
Enter pass phrase for server.key:
140545351714720:error:28069065:lib(40):UI_set_result:result too small:ui_lib.c:831:You must type in 4 to 1023 characters
Enter pass phrase for server.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:JP
State or Province Name (full name) []:Fukuoka
Locality Name (eg, city) [Default City]:Fukuoka
Organization Name (eg, company) [Default Company Ltd]:TEST
Organizational Unit Name (eg, section) []:test
Common Name (eg, your name or your server's hostname) []:
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

デジタル証明書(CRT)の作成

上記で作成した、秘密鍵と公開鍵を使用し、証明書(CRT)を作成します。

$ openssl x509 -in server.csr -days 365000 -req -signkey server.key > server.crt
Signature ok
subject=/C=JP/ST=Fukuoka/L=Fukuoka/O=TEST/OU=test
Getting Private key
Enter pass phrase for server.key:

Apacheへ自己証明書の適用

上記で作成した自己証明書と秘密鍵を以下のフォルダへ移動します。

$ pwd
/etc/httpd/conf.d/

Apache「ssl.conf」編集

以下の対象のファイルを編集します。
編集箇所は「SSLCertificateFile」と「SSLCertificateKeyFile」のパスを自己証明書に書き換えます。

$ vi /etc/httpd/conf.d/ssl.conf

※編集箇所

#SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateFile /etc/httpd/conf.d/server.crt

#SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
SSLCertificateKeyFile /etc/httpd/conf.d/server.key

Apacheサービスの再起動

ssl.confを修正後、Apacheサービスを再起動します。

$ sudo systemctl restart httpd
Enter SSL pass phrase for ip-192-31-32-228.ap-northeast-3.compute.internal:443 (RSA) : ***********
$ sudo systemctl is-active httpd
active

サービスの正常性を確認

最後に以下にてhttpdサービスの正常性を確認し問題がないことを確認します。

$ sudo systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2022-04-12 08:52:12 UTC; 8s ago
     Docs: man:httpd.service(8)
 Main PID: 5295 (httpd)
   Status: "Total requests: 2; Idle/Busy workers 100/0;Requests/sec: 0.25; Bytes served/sec: 911 B/sec"
   CGroup: /system.slice/httpd.service
           tq5295 /usr/sbin/httpd -DFOREGROUND
           tq5301 /usr/sbin/httpd -DFOREGROUND
           tq5302 /usr/sbin/httpd -DFOREGROUND
           tq5303 /usr/sbin/httpd -DFOREGROUND
           tq5304 /usr/sbin/httpd -DFOREGROUND
           mq5305 /usr/sbin/httpd -DFOREGROUND

Webサーバ(Apache)のSSL(https)化は以上となります。




エンジニアのオンライン学習

ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。

おすすめオンライン教材
自宅で学習ができるオンラインスクール

ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

ABOUT US
げんき☆ひろき
インターネット関連のSEをやっています。 ネットワーク、サーバー、ストレージ、仮想基盤まで幅広く手を出しており、MVNOの構築経験もあります。 現在は、Pythonを使ったプログラミングの開発をしネットワークの自動化ツールを作成しています! Pythonの入門書も作成しているので、ぜひ参考にしてください!