よくばりすなシステムエンジニアのブログ

サーバー・ネットワークエンジニア向けに発信しますっ!

【nginx】phpMyAdminをHTTPS化(SSL443)設定

【nginx】phpMyAdminをHTTPS化(SSL443)設定

こんにちは!

インフラ関連のシステムエンジニアをやっているカユラ(@kayura_SE )です。

今回は、「【CentOS8】phpMyAdminをHTTPS化(SSL443)設定nginx+php+MySQL」について紹介したいと思います。

私自身いろいろと躓きましたため、上から順番に実施することで「phpMyAdmin」にログインできるような構成になっております。

「root」ユーザーで作業しているため、必要に応じて「sudo」をつけてください。



名称

Ver

OS

CentOS8.6 or Linux8.6 or RHEL8.6

PHP

7.2.24-1.module_el8.3.0+2010+7c76a223

PHP-FPM

7.2.24-1.module_el8.3.0+2010+7c76a223

phpMyAdmin

5.2.0-1.el8.remi

nginx

1:1.14.1-9.module_el8.3.0+2165+af250afe

MySQL

8.0.30





前提

以下の手順にて、phpMyAdminの初期設定が完了していることを前提とします。

www.kayura-se.com

必要なパッケージのインストール

「openssl」をインストールします。

yum install -y openssl

サーバー証明書の準備

①秘密鍵を作成します。

openssl genpkey -algorithm RSA -out private.key

②CSRを作成します。

openssl req -new -key private.key -out csr.csr -days 365
Ignoring -days; not generating a certificate
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) []:TOKYO ←都道府県
Locality Name (eg, city) [Default City]:Minato-ku ←都市
Organization Name (eg, company) [Default Company Ltd]:SE-Blog ←会社名
Organizational Unit Name (eg, section) []:Personal ←組織単位
Common Name (eg, your name or your server's hostname) []:ServerName ←webアクセス時のサーバー名
Email Address []:xxxx@xxx ←メールアドレス
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:未入力 ←パスワードですが、未入力で大丈夫です。
An optional company name []:未入力 ←パスワードですが、未入力で大丈夫です。

③出来たファイルを確認します。

第三者証明書発行機関に「csr.csr」を送って、証明書を作成してもらってください。

ls -l
ーrwーrーーrーー 1 root root 1334  3月  4 23:29 csr.csr
ーrwーーーーーー 1 root root 1704 3月 4 22:31 private.key

④(任意)オレオレ証明書を作成するには、以下のコマンドを実行します。

openssl req -new -key private.key -x509 -days 365 -out mycert.crt





phpMyAdminのHTTPS化

証明書と秘密鍵の配置

①作成した証明書を証明書フォルダに配置します。

cp mycert.crt /etc/pki/tls/certs/

②作成した秘密鍵を秘密鍵フォルダに配置します。

cp private.key /etc/pki/tls/private/

phpMyAdminの設定

「nginx」の設定
vim /etc/nginx/conf.d/phpmyadmin.conf

新規にファイルを作成します。

■変更前

↓↓↓↓↓↓変更後↓↓↓↓↓↓

■変更後

「ServerHostName」と「192.168.1.180」の部分は、サーバー自身のIPまたはFQDNに変更してください。





サービスの再起動

「nginx」のサービスを再起動します。

systemctl restart nginx

【CentOS8】phpMyAdminをHTTPS化(SSL443)設定nginx+php+MySQLの手順は以上となります。

次回はphpMyAdminの活用方法について説明したいと思います。

現在悩んでいる方はTwitterでご連絡ください。

私も辛い日々を経験したのであなたの助けになりたいです。

カユラ(@kayura_SE )