開発者ドキュメント

Ubuntu12.04VPSでPhpMyAdminを使用してSSL証明書を設定する方法

ステータス:非推奨

この記事では、サポートされなくなったバージョンのUbuntuについて説明します。 現在Ubuntu12.04を実行しているサーバーを運用している場合は、サポートされているバージョンのUbuntuにアップグレードまたは移行することを強くお勧めします。

理由:
Ubuntu 12.04は2017年4月28日に保守終了(EOL)に達しました and no longer receives security patches or updates. This guide is no longer maintained.

代わりに参照してください:
このガイドは参照として役立つ場合がありますが、他のUbuntuリリースでは機能しない場合があります。 可能な場合は、使用しているUbuntuのバージョン用に作成されたガイドを使用することを強くお勧めします。 ページ上部の検索機能を使用して、より新しいバージョンを見つけることができます。

序章

PhpMyAdminは、視覚的にわかりやすい方法でMySQLデータベースを簡単に管理するために使用されるWebベースのフロントエンドです。 このソフトウェアをセットアップして、シェルアクセスなしでVPS上のデータをリモートで管理できます。

phpMyAdminは便利ですが、正しく設定されていないと安全でない場合もあります。 このガイドでは、SSLとアクセス制限を使用してUbuntu 12.04マシンのLAMP(Linux、Apache、MySQL、およびPHP5)スタックにphpMyAdminをインストールする方法について説明します。

初期設定

このガイドは、Ubuntu 12.04サーバーへのルートアクセス権があり、LAMPがすでに構成されていることを前提としています。 まだ’を設定していない場合は、このガイドに従って、Ubuntu 12.04 にApache、MySQL、およびPHPをインストールしてください。

サーバーにログインし、準備ができたら続行します。

UbuntuでPhpMyAdminを設定する方法

Ubuntu 12.04では、デフォルトのリポジトリにphpMyAdminが含まれています。 次のコマンドを使用してインストールします。

sudo apt-get install phpmyadmin

インストール時に設定するサーバーとして「Apache2」を選択します。 「はい」を選択して、phpMyAdminデータベースを自動的に構成できるようにします。

インストール時にrootMySQLユーザーに設定したパスワードを入力し、ログインに使用するphpMyAdminプロセスのパスワードを割り当てます。

PhpMyAdminをロードするようにApacheを構成する

アプリケーションへのアクセスを許可するために、phpMyAdmin構成を入手するようにApacheに指示します。

ルート権限でメインのApache設定ファイルを編集します。

sudo nano /etc/apache2/apache2.conf

ファイルの一番下までスクロールし、次のディレクティブを入力して、ApacheにphpMyAdmin固有の構成ファイルを読み取らせます。

Include /etc/phpmyadmin/apache.conf

変更を有効にするためにサーバーを再起動します。

sudo service apache2 restart

次のようなメッセージが表示される場合があります。

[warn] The Alias directive in /etc/phpmyadmin/apache.conf at line 3 will probably never match because it overlaps an earlier Alias.
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

これらは単なる警告であり、無視しても問題ありません。

PhpMyAdminの.htaccessを設定する方法

phpMyAdminを保護するための最初のステップは、.htaccess制限を設定することです。 これには、phpMyAdminインターフェイスにアクセスする前にパスワードログインが必要になります。

まず、.htaccessファイルを使用できるようにphpMyAdminapache構成を構成します。 ルート権限でphpMyAdminapache設定ファイルを開きます。

sudo nano /etc/phpmyadmin/apache.conf

「DirectoryIndexindex.php」という行の下に、「AllowOverrideAll」という行を挿入します。

<Directory /usr/share/phpmyadmin>
	Options FollowSymLinks
	DirectoryIndex index.php
	AllowOverride All
	. . .

ファイルを保存して閉じます。

次に、phpMyAdmin固有の.htaccessファイルを作成します。

sudo nano /usr/share/phpmyadmin/.htaccess

次のテキストをファイルに挿入します。

AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user

ファイルを保存して閉じます。

この変更により、サイトは「/etc/phpmyadmin/.htpasswd」で有効なログイン資格情報のリストを検索します。

次のコマンドを使用して、そのファイルとログインアカウントを作成できます。 使用するユーザー名に置き換えます。

sudo htpasswd -c /etc/phpmyadmin/.htpasswd user_name

新しいユーザーのパスワードを選択するように求められます。

次に、Apacheを再起動して、アクセス制限を有効にします。

sudo service apache2 restart

PhpMyAdminでSSLを設定する方法

Webインターフェイスとサーバー間で機密データを渡すため、データがプレーンテキストで送信されないようにSSLを設定する必要があります。

まず、SSLサポートを有効にするようにApacheに指示し、サーバーを再起動して次のコマンドで変更を実装します。

sudo a2enmod ssl
sudo service apache2 restart

SSL証明書を保存するディレクトリを作成してから、次のコマンドを使用してキーと証明書を作成します。

sudo mkdir /etc/apache2/ssl
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt

これにより、365日間有効な証明書が作成されます。 いくつかの質問があります。 できるだけよく記入してください。

あなたがしなければならない正しく答えなければならない質問は「一般名」です。 このフィールドには、ドメイン名またはサーバーのIPアドレスを使用します。

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) [AU]:US
State or Province Name (full name) [Some-State]:New York
Locality Name (eg, city) []:NYC
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Awesome Inc
Organizational Unit Name (eg, section) []:Dept of Merriment
Common Name (e.g. server FQDN or YOUR name) []:example.com                  
Email Address []:webmaster@awesomeinc.com

SSL証明書を使用するようにApacheを設定する

Now that you have created an SSL certificate, you need to tell Apache to use SSL.  Open the default virtual host config file with root privileges:
sudo nano /etc/apache2/sites-available/default

「 「への宣言」 “、これはデフォルトのSSLポートです。

その変更後、SSL証明書の作成時に使用したドメイン名またはIPアドレスを指定するVirtualHost定義内に「ServerName」セクションを追加し、その後に「:443」を追加します。

<VirtualHost *:443>
	ServerAdmin webmaster@localhost
	ServerName example.com:443
	. . .

ファイルを閉じる前に、「」の直前に次の行を追加します。 “終了タグ:

SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key

ファイルを保存して閉じます。

PhpMyAdmin内でSSLを強制する

ここで、接続が確立されるたびにSSLを使用する必要があることをphpMyAdminに通知する必要があります。

これは、phpMyAdmin構成ファイル内で行います。 編集用のroot権限でファイルを開きます。

sudo nano /etc/phpmyadmin/config.inc.php

ファイルの一番下までスクロールして、次の行を追加します。

$cfg['ForceSSL'] = true;

これは、phpMyAdminにSSLを要求するために必要な唯一の行です。

ファイルを保存して閉じます。

SSL変更の有効化

まだ有効になっていない場合は、次のコマンドでサイトを有効にします。

sudo a2ensite default

Apacheサービスを再起動して、変更を実装します。

sudo service apache2 restart

結果の表示

phpMyAdminインターフェイスにアクセスするには、ブラウザでドメイン名またはサーバーのIPアドレスに移動し、続いて「/phpmyadmin」に移動します。

example.com/phpmyadmin

.htaccessファイルで設定したユーザー名とパスワードの入力を求められます。

次に、SSL証明書が信頼されていないことを訴える画面が表示される可能性があります。

これは、SSL証明書を自分で作成し、SSL証明機関を経由しなかったためです。 これは私たちの目的には問題ありません。

「続行」または「続行」をクリックして次に進みます。 現在SSLを介してサイトにアクセスしようとしているため、.htaccessパスワードの入力を再度求められます。

インストール中に設定したクレデンシャルを入力できるphpMyAdminログインページが表示されます。

Username: root
Password: your_phpmyadmin_password

これで、メインのphpMyConfig管理ページに移動します。

ジャスティン・エリングウッド
モバイルバージョンを終了