在Linux下配置Nginx以支持HTTPS协议访问,需要完成以下步骤:
(图片来源网络,侵删)(图片来源网络,侵删)1、生成SSL证书
2、安装Nginx
3、配置Nginx
4、重启Nginx
下面是详细的步骤和配置示例:
我们需要生成一个SSL证书,可以使用Let’s Encrypt免费获取证书,按照以下步骤操作:
sudo aptget updatesudo aptget install softwarepropertiescommonsudo addaptrepository ppa:certbot/certbotsudo aptget updatesudo aptget install certbot pythoncertbotnginx
sudo certbot nginx d example.com d www.example.com
这将为example.com和www.example.com域名生成证书,请将example.com替换为您的域名。
如果您还没有安装Nginx,可以使用以下命令安装:
sudo aptget updatesudo aptget install nginx
接下来,我们需要编辑Nginx配置文件以启用HTTPS,找到并打开Nginx配置文件:
sudo nano /etc/nginx/sitesavailable/default
将以下内容添加到配置文件中,替换为您的域名和证书路径:
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 'ECDHERSAAES128GCMSHA256:ECDHEECDSAAES128GCMSHA256:ECDHERSAAES256GCMSHA384:ECDHEECDSAAES256GCMSHA384:DHERSAAES128GCMSHA256:DHEDSSAES128GCMSHA256:kEDH+AESGCM:ECDHERSAAES128SHA256:ECDHEECDSAAES128SHA256:ECDHERSAAES128SHA:ECDHEECDSAAES128SHA:ECDHERSAAES256SHA384:ECDHEECDSAAES256SHA384:ECDHERSAAES256SHA:ECDHEECDSAAES256SHA:DHERSAAES128SHA256:DHERSAAES128SHA:DHEDSSAES128SHA256:DHERSAAES256SHA256:DHEDSSAES256SHA:DHERSAAES256SHA:AES128GCMSHA256:AES256GCMSHA384:AES128SHA256:AES256SHA256:AES128SHA:AES256SHA:AES:CAMELLIA:DESCBC3SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDHDSSDESCBC3SHA:!EDHRSADESCBC3SHA:!KRB5DESCBC3SHA'; # 加密套件列表 ssl_session_cache shared:SSL:10m; # 会话缓存设置 ssl_session_timeout 1d; # 会话超时时间 ssl_session_tickets off; # 禁用SSL会话票证(Session Tickets)功能,以提高安全性 ssl_stapling on; # 开启SNI代理,提高性能和安全性 ssl_stapling_verify on; # 开启验证SNI代理,提高安全性 add_header StrictTransportSecurity maxage=15768000; # 添加HSTS头部,提高安全性 add_header XFrameOptions DENY; # 防止点击劫持攻击,添加XSS防护头部 add_header XContentTypeOptions nosniff; # 防止MIME嗅探攻击,添加XSS防护头部 add_header XXSSProtection "1; mode=block"; # 防止XSS攻击,添加XSS防护头部 add_header ContentSecurityPolicy "frameancestors 'self' https://trusted.example.com"; # 添加内容安全策略头部,防止跨站脚本攻击(XSS)和点击劫持攻击(Clickjacking)等安全漏洞 add_header ReferrerPolicy noreferrer; # 防止Referrer信息泄露,添加Referrer策略头部 location / { root /var/www/html; # 网站根目录,根据实际情况修改 index index.html index.htm index.php; # 默认首页文件名,根据实际情况修改 try_files $uri $uri/ =404; # 尝试访问请求的文件或目录,如果不存在则返回404错误页面,根据实际情况修改 }}
保存并关闭配置文件,然后重启Nginx以应用更改:
sudo systemctl restart nginx
重启Nginx以应用更改:
sudo systemctl restart nginx
如果您按照以上步骤配置成功,您的Nginx将支持HTTPS访问。如有任何疑问或问题,请随时在评论区留言,我们会尽快帮助解决。感谢您的阅读,别忘了关注、点赞和分享!