Linux nginx服务添加SSL证书并实现http重定向https

Nginx HTTPS配置与优化
本文详细介绍了Nginx服务器的HTTPS配置方法,包括如何设置监听端口、域名、SSL证书,以及如何进行HTTP到HTTPS的永久重定向。此外,还提供了Nginx的启动、停止和重启命令,以及如何配置缓存、错误页面和访问限制。
server
{
    listen 80;
    listen 443 ssl http2;
    server_name www.XXXXXX.com XXXXXX.com;
    index index.php index.html index.htm default.php default.htm default.html;
    root /www/wwwroot/www.XXXXXX.com;
    
    #永久重定向到 https 站点
    if ( $scheme = http ){
        return 301 https://$server_name$request_uri;
    }

    ssl_certificate_key /www/server/panel/vhost/ssl/www.XXXXXX.com/3706600_www.XXXXXX.com.key;
    ssl_certificate /www/server/panel/vhost/ssl/www.XXXXXX.com/3706600_www.XXXXXX.com.pem;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_prefer_server_ciphers on;
    ssl_session_timeout 10m;
    ssl_session_cache builtin:1000 shared:SSL:10m;
    ssl_buffer_size 1400;
    add_header Strict-Transport-Security max-age=15768000;
    ssl_stapling on;
    ssl_stapling_verify on;
    
    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #error_page 404/404.html;
    #301-START
        if ($host ~ '^XXXXXX.com'){
            return 301 https://$server_name$request_uri;
        }
    #301-END


    #SSL-END
    
    #ERROR-PAGE-START  错误页配置,可以注释、删除或修改
    error_page 404 /404.html;
    error_page 502 /502.html;
    #ERROR-PAGE-END
    
    #PHP-INFO-START  PHP引用配置,可以注释或修改
    include enable-php-55.conf;
    #PHP-INFO-END
    
    #REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
    include /www/server/panel/vhost/rewrite/www.XXXXXX.com.conf;
    #REWRITE-END
    
    #禁止访问的文件或目录
    location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
    {
        return 404;
    }
    
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
        access_log off; 
    }
    
    location ~ .*\.(js|css)?$
    {
        expires      12h;
        access_log off; 
    }
    access_log  /www/wwwlogs/www.XXXXXX.com.log;
    error_log  /www/wwwlogs/www.XXXXXX.com.error.log;
}

 

重启nginx

//安装目录
[root@***** sbin]# pwd    
/www/server/nginx/sbin
//查看Nginx的版本号
[root@***** sbin]# ./nginx -V
//启动
[root@***** sbin]# ./nginx
//停止
[root@***** sbin]# ./nginx -s stop
//重启加载配置
[root@***** sbin]# ./nginx -s reload

 

### 配置 Nginx 服务器以部署 SSL 证书Linux 系统上使用 Nginx 部署 SSL 证书是启用 HTTPS 加密通信的重要步骤。以下是详细的部署指南: #### 1. 准备工作 确保您已经准备好以下内容: - 有效的 SSL 证书文件(通常包括 `.crt` 文件) - 私钥文件(`.key` 文件) - 中间证书文件(可选,但推荐使用以构建完整的证书链) - Nginx 已经安装正常运行 如果您使用的是自签名证书,则需要使用 `openssl` 工具生成证书和私钥[^4]。 ```bash sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt ``` #### 2. 上传证书文件 将 SSL 证书和私钥上传到服务器,通常建议将证书文件存储在 `/etc/nginx/ssl/` 或 `/etc/ssl/certs/` 目录中。例如: - 证书文件:`/etc/nginx/ssl/example.com.crt` - 私钥文件:`/etc/nginx/ssl/example.com.key` - 中间证书文件:`/etc/nginx/ssl/example.com.ca-bundle` #### 3. 编辑 Nginx 配置文件 打开 Nginx 的站点配置文件(如 `/etc/nginx/sites-available/default` 或 `/etc/nginx/conf.d/example_ssl.conf`),添加或修改以下内容: ```nginx server { listen 443 ssl; server_name example.com www.example.com; ssl_certificate /etc/nginx/ssl/example.com.crt; ssl_certificate_key /etc/nginx/ssl/example.com.key; ssl_trusted_certificate /etc/nginx/ssl/example.com.ca-bundle; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; location / { root /usr/share/nginx/html; index index.html index.htm; } # 其他配置... } ``` 如果您使用的是国密算法(如 SM2),则需要指定国密加密套件和协议版本[^3]: ```nginx ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers SM2-SM3-SM4-ECDHE-SM2-WITH-SM3; ssl_prefer_server_ciphers on; ``` #### 4. 配置 HTTPHTTPS 重定向(可选) 为了确保所有流量都通过 HTTPS 访问,可以在 HTTP 配置中添加重定向: ```nginx server { listen 80; server_name example.com www.example.com; return 301 https://$host$request_uri; } ``` #### 5. 检查配置重启 Nginx 在应用配置之前,检查 Nginx 配置是否正确: ```bash sudo nginx -t ``` 如果没有错误,重启 Nginx 服务以应用更改: ```bash sudo systemctl restart nginx ``` #### 6. 验证 SSL 证书 访问 `https://example.com`,确保浏览器显示安全锁图标。您可以使用以下在线工具验证证书的完整性和配置是否正确: - [SSL Labs SSL Test](https://www.ssllabs.com/ssltest/) #### 7. 定期更新与维护 - **证书续期**:SSL 证书通常有有效期(如 90 天),需定期更新。可使用 Let's Encrypt 等工具自动续期。 - **密钥保护**:确保私钥文件的权限设置为 `600`,仅限 `root` 用户访问。 - **日志监控**:定期检查 Nginx 日志(如 `/var/log/nginx/error.log`)以发现潜在问题。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咯拉咯啦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值