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)化は以上となります。
サーバーを構築するならVPSがおすすめです。
エンジニアのオンライン学習
ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。
おすすめオンライン教材 | |
自宅で学習ができるオンラインスクール | |
ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。
コメントを残す