如何在Ubuntu 12.04 VPS上使用PhpMyAdmin设置SSL证书

介绍

PhpMyAdmin是一个基于Web的前端,用于以视觉友好的方式轻松管理MySQL数据库。 您可以设置此软件远程管理VPS上的数据,无需shell访问。

虽然phpMyAdmin是有用的,如果没有正确配置,它也可能是不安全的。 本指南将介绍如何在Ubuntu 12.04计算机上使用SSL和访问限制在LAMP(Linux,Apache,MySQL和PHP5)上安装phpMyAdmin。

初始设置

本指南假定您对root用户拥有Ubuntu 12.04服务器,并且已经配置了LAMP。 按照本指南在Ubuntu 12.04安装Apache,MySQL和PHP如果您尚未设置起来。

登录到您的服务器,并准备好后继续。

如何在Ubuntu上设置PhpMyAdmin

Ubuntu 12.04在其默认存储库中包含phpMyAdmin。 使用此命令安装:

sudo apt-get install phpmyadmin

选择“Apache2”作为在安装期间配置的服务器。 选择“是”以允许自动配置phpMyAdmin数据库。

输入在安装过程中为MySQL根用户设置的密码,然后为phpMyAdmin进程指定要用于登录的密码。

配置Apache加载PhpMyAdmin

告诉Apache来源phpMyAdmin配置为了允许访问应用程序。

使用root权限编辑主要的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界面之前进行密码登录。

首先,配置phpMyAdmin apache配置以允许使用.htaccess文件。 使用root权限打开phpMyAdmin apache配置文件:

sudo nano /etc/phpmyadmin/apache.conf

在读取“DirectoryIndex index.php”的行下,插入一行显示“AllowOverride All”的行:

<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,以确保我们的数据不以纯文本格式发送。

首先,告诉Apache启用SSL支持并重新启动服务器以使用以下命令实施更改:

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

配置Apache以使用SSL证书

现在您已经创建了SSL证书,您需要告诉Apache使用SSL。 使用root权限打开默认虚拟主机配置文件:
sudo nano /etc/apache2/sites-available/default

首先将“<VirtualHost *:80>”声明更改为“<VirtualHost *:443>”,这是默认的SSL端口。

更改后,在VirtualHost定义中添加一个“ServerName”部分,该部分指定在创建SSL证书时使用的域名或IP地址,后跟“:443”:

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

在关闭文件之前,在“</ VirtualHost>”结束标记之前添加以下行:

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

保存并关闭文件。

在PhpMyAdmin中强制SSL

我们现在必须告诉phpMyAdmin每当连接时都必须使用SSL。

我们将在phpMyAdmin配置文件中执行此操作。 使用root权限打开文件以进行编辑:

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

滚动到文件的底部并添加以下行:

$cfg['ForceSSL'] = true;

这是需要为phpMyAdmin SSL的唯一的行。

保存并关闭文件。

启用S​​SL更改

如果尚未启用,请使用以下命令启用站点:

sudo a2ensite default

重新启动Apache服务以实现更改:

sudo service apache2 restart

查看结果

要访问phpMyAdmin界面,请使用浏览器导航到您的域名或服务器IP地址,后跟“/ phpmyadmin”:

example.com/phpmyadmin

系统将要求您输入您使用.htaccess文件设置的用户名和密码。

PhpMyAdmin htaccess登录页面

然后,您可能会看到一个屏幕抱怨SSL证书不受信任。

PhpMyAdmin SSL证书页面无效

这是因为我们自己创建了SSL证书,没有通过SSL证书颁发机构。 这是我们的目的。

点击“继续”或“继续”继续。 您将再次要求输入.htaccess密码,因为我们现在尝试通过SSL访问该网站。

您现在将看到phpMyAdmin登录页面,您可以在其中输入在安装过程中设置的凭据。

Username: root
Password: your_phpmyadmin_password
PhpMyAdmin登录屏幕

您现在将被放入主phpMyConfig管理页面:

PhpMyAdmin主配置页
作者:Justin Ellingwood
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏