在Ubuntu上配置PHP SSL加密连接通常涉及以下几个步骤:
首先,你需要一个SSL证书。你可以从Let’s Encrypt免费获取,或者购买一个商业证书。
安装Certbot:
sudo apt update
sudo apt install certbot python3-certbot-apache
获取证书:
sudo certbot --apache -d yourdomain.com -d www.yourdomain.com
按照提示完成证书的获取和安装。
如果你使用的是Apache服务器,Certbot会自动为你配置SSL。
如果你需要手动配置Apache以支持SSL,可以编辑Apache配置文件:
启用SSL模块:
sudo a2enmod ssl
配置SSL虚拟主机:
编辑/etc/apache2/sites-available/yourdomain.com-le-ssl.conf文件:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin webmaster@yourdomain.com
ServerName yourdomain.com
ServerAlias www.yourdomain.com
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/yourdomain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/yourdomain.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateChainFile /etc/letsencrypt/live/yourdomain.com/chain.pem
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
</IfModule>
启用站点:
sudo a2ensite yourdomain.com-le-ssl.conf
重启Apache:
sudo systemctl restart apache2
确保PHP能够处理SSL连接。通常情况下,PHP默认配置已经支持SSL。
编辑PHP配置文件(通常是/etc/php/7.4/apache2/php.ini或类似路径):
sudo nano /etc/php/7.4/apache2/php.ini
确保以下设置正确:
; 启用SSL
curl.cainfo = /etc/ssl/certs/ca-certificates.crt
openssl.cafile = /etc/ssl/certs/ca-certificates.crt
重启Apache:
sudo systemctl restart apache2
使用浏览器访问你的域名,确保浏览器显示安全锁标志,并且没有警告信息。
你可以使用curl命令来测试SSL连接:
curl -v https://yourdomain.com
如果一切配置正确,你应该看到HTTPS请求的详细信息,并且没有错误。
通过以上步骤,你应该能够在Ubuntu上成功配置PHP SSL加密连接。