保护phpmyadmin:非标准端口+ https

试图确保phpmyadmin,我们已经做到了以下几点:

现在我们想要实现https …但是如何在phpMyAdmin已经运行在非标准端口的情况下工作呢?

这是Apache的configuration:

# PHP MY ADMIN <VirtualHost *:$CUSTOMPORT> Alias /phpmyadmin /usr/share/phpmyadmin <Directory /usr/share/phpmyadmin> Options FollowSymLinks DirectoryIndex index.php <IfModule mod_php5.c> AddType application/x-httpd-php .php php_flag magic_quotes_gpc Off php_flag track_vars On php_flag register_globals Off php_value include_path . </IfModule> </Directory> # Disallow web access to directories that don't need it <Directory /usr/share/phpmyadmin/libraries> Order Deny,Allow Deny from All </Directory> <Directory /usr/share/phpmyadmin/setup/lib> Order Deny,Allow Deny from All </Directory> # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/phpmyadmin.log combined </VirtualHost> 

编辑:

我用apache自己创build了一个自定义的SSL证书,基于这个链接 ,然后按照James提供的技巧,我得到这个:

 [Sun Nov 04 16:02:38 2012] [info] Init: Seeding PRNG with 656 bytes of entropy [Sun Nov 04 16:02:38 2012] [error] Init: Unable to read server certificate from file /etc/apache2/ssl/pma.crt [Sun Nov 04 16:02:38 2012] [error] SSL Library Error: 218529960 error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag [Sun Nov 04 16:02:38 2012] [error] SSL Library Error: 218595386 error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error [Mon Nov 05 18:22:54 2012] [info] Init: Seeding PRNG with 656 bytes of entropy [Mon Nov 05 18:22:54 2012] [error] Init: Unable to read server certificate from file /etc/apache2/ssl/pma.crt [Mon Nov 05 18:22:54 2012] [error] SSL Library Error: 218529960 error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag [Mon Nov 05 18:22:54 2012] [error] SSL Library Error: 218595386 error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error 

编辑:

文件存在,键在那里,以' – '结尾,这些是特权:

 drwxr-xr-x 2 root root 4096 4. Nov 14:45 . drwxr-xr-x 8 root root 4096 4. Nov 14:30 .. -rw-r--r-- 1 root root 1041 4. Nov 14:45 pma.crt -rw-r--r-- 1 root root 1679 4. Nov 14:45 pma.key 

phpMyAdmin是使我作为一个事件/取证审查员的业务包之一。 它有一个可怕的代码执行和身份validation旁路的历史。 我的一般安全build议是卸载它并使用Workbench之类的东西,或者学习如何直接pipe理mysqld。

如果你使用它,那么你采取的步骤是好的。 您绝对只需要通过SSL进行展示,这将在底层Web服务器上进行configuration。 您还需要限制访问。 与Apache httpd这将通过htaccess完成。 尽可能严格地closures它。 你的努力将得到回报。

简单地说,你需要做的就是以正常的方式为SSLconfiguration虚拟主机。

 SSLEngine on SSLCertificateFile /path/to/crt SSLCertificateKeyFile /parh/to/cry/key 

因为虚拟主机被configuration为侦听不同的端口不会影响SSL的工作方式,但是您需要告诉浏览器它正在不同的端口上运行。 例如:

 https://www.example.com:3130/phpmyadmin 

更新:修正错别字。

如果您必须使用phpMyAdmin(如果您真的关心安全性,则不应该如@ScottPack所述),您应该考虑限制访问私有子网并使用VPN隧道进行连接以访问它。 我不会在公共互联网上部署phpMyAdmin。