在配置lnmp(Linux+Nginx+MySQL+PHP)环境时,我们经常需要为多个网站配置SSL证书,SSL证书可以保证网站数据的安全传输,防止被中间人攻击,本文将详细介绍如何在lnmp环境下为多个网站配置SSL证书。
生成SSL证书
我们需要为每个网站生成一个SSL证书,我们可以使用Let’s Encrypt提供的免费SSL证书,以下是生成SSL证书的步骤:
1、安装Certbot工具:Certbot是一个用于自动获取和安装Let’s Encrypt SSL证书的工具,在Ubuntu系统中,可以使用以下命令安装:
sudo apt-get update sudo apt-get install software-properties-common sudo add-apt-repository ppa:certbot/certbot sudo apt-get update sudo apt-get install certbot
2、生成SSL证书:使用Certbot为网站生成SSL证书,为example.com域名生成证书,可以使用以下命令:
sudo certbot certonly --webroot -w /var/www/example.com/public_html -d example.com -d www.example.com
3、自动续期SSL证书:Certbot默认会每三个月自动续期SSL证书,如果需要手动续期,可以使用以下命令:
sudo certbot renew --quiet
配置Nginx支持SSL
接下来,我们需要在Nginx配置文件中添加SSL相关的配置,以下是配置Nginx支持SSL的步骤:
1、打开Nginx配置文件:Nginx的配置文件通常位于/etc/nginx/sites-available
目录下,使用文本编辑器打开相应的配置文件,例如example.com.conf
。
2、修改配置文件:在配置文件中,找到server
块,添加以下内容:
listen 443 ssl; server_name example.com www.example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH'; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m;
注意将example.com
替换为实际的域名,确保ssl_certificate
和ssl_certificate_key
指向正确的证书和密钥文件路径。
3、重启Nginx:保存配置文件后,重启Nginx以使更改生效:
sudo service nginx restart
测试SSL配置
我们需要测试SSL配置是否正确,可以使用浏览器访问网站,并检查URL是否显示为https,可以在浏览器地址栏查看是否有绿色的锁标志,表示连接是安全的。
其他注意事项
1、在生成SSL证书时,需要确保网站根目录下有一个名为public_html
的文件夹,并将网站文件放入其中,否则,Certbot无法正确验证域名所有权。
2、如果遇到“No challenge found”的错误,可以尝试使用--nginx
参数重新运行Certbot命令:
sudo certbot certonly --webroot -w /var/www/example.com/public_html -d example.com -d www.example.com --nginx
3、如果需要为子域名配置SSL证书,只需在Certbot命令中添加相应的域名即可,为blog.example.com域名生成证书:
sudo certbot certonly --webroot -w /var/www/blog.example.com/public_html -d blog.example.com -d www.blog.example.com --nginx
4、如果需要为多个域名配置SSL证书,可以为每个域名分别运行Certbot命令,并在Nginx配置文件中添加相应的server
块,重启Nginx以使更改生效。
原创文章,作者:酷盾叔,如若转载,请注明出处:https://www.kdun.com/ask/154320.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复