在Linux下配置Nginx以支持HTTPS协议访问,需要完成以下步骤:
1、生成SSL证书
2、安装Nginx
3、配置Nginx
4、重启Nginx
下面是详细的步骤和配置示例:
1. 生成SSL证书
我们需要生成一个SSL证书,可以使用Let’s Encrypt免费获取证书,按照以下步骤操作:
1、安装Certbot工具:
sudo aptget update sudo aptget install softwarepropertiescommon sudo addaptrepository ppa:certbot/certbot sudo aptget update sudo aptget install certbot pythoncertbotnginx
2、使用Certbot为Nginx生成证书:
sudo certbot nginx d example.com d www.example.com
这将为example.com和www.example.com域名生成证书,请将example.com替换为您的域名。
2. 安装Nginx
如果您还没有安装Nginx,可以使用以下命令安装:
sudo aptget update sudo aptget install nginx
3. 配置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
4. 重启Nginx
重启Nginx以应用更改:
sudo systemctl restart nginx
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/678402.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复