当前位置:首页 > 行业动态 > 正文

Linux下nginx配置https协议访问

在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
0