在Linux LAMP服务器上配置SSL证书可以帮助你实现安全的HTTPS连接。以下是一个基本的步骤指南,使用Let’s Encrypt提供的免费SSL证书来配置SSL。
Certbot是Let’s Encrypt的官方客户端工具,用于自动获取和续订SSL证书。
sudo apt update
sudo apt install certbot python3-certbot-apache
使用Certbot获取SSL证书。运行以下命令并按照提示操作:
sudo certbot --apache -d yourdomain.com -d www.yourdomain.com
-d yourdomain.com 和 -d www.yourdomain.com 是你的域名。Certbot会自动测试你的配置并重启Apache。你可以访问 https://yourdomain.com 来验证SSL证书是否正确安装。
Let’s Encrypt的证书有效期为90天。Certbot会自动设置一个cron作业来定期检查并续订证书。
sudo systemctl status certbot.timer
如果一切正常,你应该看到定时任务正在运行。
确保防火墙允许HTTPS流量:
sudo ufw allow 'Apache Full'
或者如果你使用的是其他防火墙工具,请相应地配置。
如果你不想使用Certbot,也可以手动配置SSL证书。以下是基本步骤:
生成自签名证书(仅用于测试,不推荐用于生产环境):
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/yourdomain.com.key -out /etc/ssl/certs/yourdomain.com.crt
配置Apache:
编辑Apache的SSL配置文件(通常位于 /etc/apache2/sites-available/yourdomain.com-le-ssl.conf),添加以下内容:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin webmaster@yourdomain.com
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/ssl/certs/yourdomain.com.crt
SSLCertificateKeyFile /etc/ssl/private/yourdomain.com.key
<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>
启用SSL站点:
sudo a2ensite yourdomain.com-le-ssl.conf
sudo systemctl restart apache2
重定向HTTP到HTTPS(可选):
编辑默认的Apache配置文件(通常位于 /etc/apache2/sites-available/000-default.conf),添加以下内容:
<VirtualHost *:80>
ServerName yourdomain.com
ServerAlias www.yourdomain.com
Redirect permanent / https://yourdomain.com/
</VirtualHost>
然后重启Apache:
sudo systemctl restart apache2
通过以上步骤,你应该能够在Linux LAMP服务器上成功配置SSL证书。