Nginx SSL搭建 HTTPS 网站
1. 准备工作
1.1 获取SSL证书
要使用HTTPS,首先需要获得一个SSL证书,有许多机构可以提供免费的SSL证书,例如Let’s Encrypt,以下是如何通过Certbot工具自动获取和安装Let’s Encrypt证书的步骤:
1、安装Certbot:
“`bash
sudo aptget update
sudo aptget install softwarepropertiescommon
sudo addaptrepository universe
sudo addaptrepository ppa:certbot/certbot
sudo aptget update
sudo aptget install certbot python3certbotnginx
“`
2、运行Certbot并按照提示操作:
“`bash
sudo certbot nginx d example.com d www.example.com
“`
这将为您的域名生成一个有效期为90天的证书,并在Nginx中配置它。
1.2 配置Nginx
确保您的Nginx配置文件(通常位于/etc/nginx/sitesavailable/default
或/etc/nginx/conf.d/default.conf
)已经正确设置,以下是一个基本的HTTPS配置示例:
server { listen 80; server_name example.com www.example.com; return 301 https://$host$request_uri; } 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'; location / { root /var/www/html; # 网站根目录 index index.html index.htm; } }
2. 重启Nginx服务
完成上述配置后,需要重启Nginx服务以使更改生效:
sudo systemctl restart nginx
3. 验证HTTPS配置
您可以通过浏览器访问您的网站,并检查是否已成功启用HTTPS,在地址栏中,您应该看到一个小锁图标,表示连接是安全的。
4. 自动续期证书
为了确保您的SSL证书始终保持有效,可以使用Certbot的自动续期功能,编辑Certbot的定时任务文件:
sudo nano /etc/crontab
添加以下行以每天检查并更新证书:
0 3 * * * root certbot renew quiet && service nginx reload
保存并退出编辑器,这将确保您的证书在到期前自动更新。
相关问题与解答
问题1:如何在Nginx中配置多个域名?
答:在Nginx配置文件中,您可以为每个域名创建一个单独的server块。
server { listen 80; server_name domain1.com www.domain1.com; return 301 https://$host$request_uri; } server { listen 80; server_name domain2.com www.domain2.com; return 301 https://$host$request_uri; }
这样,每个域名都有自己的server块,可以根据需要进行独立配置。
问题2:如何查看当前Nginx使用的SSL证书信息?
答:您可以使用以下命令来查看当前Nginx使用的SSL证书信息:
sudo openssl s_client connect example.com:443 servername example.com
这将显示证书的详细信息,包括颁发者、有效期等。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/954978.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复