在开始之前,重要的是要注意SSL证书通常是针对域名发行的,而不是IP地址或Localhost。但是,您仍然可以为Localhost创建一个自签名的SSL证书,可用于测试目的。
以下是在Local主机上设置SSL的步骤:
生成自签名的SSL证书
在Windows上,您可以使用OpenSSL或XAMPP等工具来生成自签名的SSL证书。在Linux或MacOS上,您可以使用OpenSSL命令行工具。
打开命令提示符或终端,然后导航到要生成SSL证书的目录。
输入以下命令生成私钥:
openssl genrsa -out key.pem 2048
openssl req -new -key key.pem -out csr.pem
输入以下命令生成自签名的SSL证书:
openssl x509 -req -days 365 -in csr.pem -signkey key.pem -out cert.pem
这将生成自签名的SSL证书,并将其保存到当前目录中的“ cert.pem”的文件中。
安装SSL证书
在Windows上,您可以通过双击CERT.PEM文件并遵循证书进口向导中的提示来安装SSL证书。
在Linux或MacOS上,您可以将CERT.PEM文件复制到/usr/local/local/share/ca-certificates/Directory,然后运行以下命令以更新系统的证书存储:
sudo update-ca-certificates
配置您的Web服务器以使用SSL
如果您使用的是Apache,则可以通过在 httpd.conf 文件中删除以下行启用SSL:
LoadModule ssl_module modules/mod_ssl.so
然后,为使用SSL证书的Localhost网站创建虚拟主机:
<VirtualHost *:443>
ServerName localhost
DocumentRoot /path/to/localhost
SSLEngine on
SSLCertificateFile /path/to/cert.pem
SSLCertificateKeyFile /path/to/key.pem
</VirtualHost>
替换/path/to/localhost使用Localhost网站目录的路径,然后替换/path/path/path/path.pem和/path和/path/path/to/key.pem,带有SSL证书和私有密钥文件的路径,分别。
如果您使用的是nginx,则可以通过在服务器块中添加以下行来启用SSL:
listen 443 ssl;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
再次替换/path/path.pem和/path/path/key.pem分别使用SSL证书和私人密钥文件的路径。
测试SSL连接
打开一个网络浏览器,并导航到https://localhost/和http://localhost/。您应该看到警告说,由于该网站的证书是自签名的。但是,您仍然应该能够进入网站。
如果您使用的是Chrome,则可能需要单击地址栏中的“不安全”按钮,然后单击“证书(无效)”以查看证书。
如何使用SSL在Localhost上运行PhpMyAdmin?
- 按照我上面说的答案,请执行以下步骤生成自签名的SSL证书并配置Apache以使用SSL。
- 打开位于XAMPP安装的“ phpmyadmin”目录中的phpMyAdmin配置文件(例如,C:\ xampp \ xampp \ phpmyadmin \ config.inc.inc.inc.php)。
- 将以下行添加到文件末尾:
$cfg['ForceSSL'] = true;
$cfg['SSLVerify'] = false;
- 第一行强迫phpmyadmin使用SSL,第二行禁用SSL验证。由于您使用的是自签名的证书,因此除非您在计算机上安装证书作为受信任的证书,否则SSL验证将失败,但是出于开发目的,可以将其禁用。
- 将更改保存到配置文件中。
- 在XAMPP控制面板中重新启动Apache。
- 打开网络浏览器并导航到https://localhost/phpmyadmin。现在,您应该能够使用SSL访问PhpMyAdmin。你可能会看到 关于自签名证书的警告,但您应该能够继续进行网站。