Nginx 配置SSL,实现 https 访问

本文详细介绍如何在Nginx中配置SSL证书,包括创建sslkey目录、放置证书文件及修改nginx.conf配置文件等步骤,确保网站能通过HTTPS访问。

之前因为苹果强制使用 HTTPS,在Apache上配置过SSL了,今天把 Apache换成了Nginx,记录下Nginx配置SSL过程。

 

1、在Nginx conf目录下新建一个 sslkey目录(nginx-1.12.2\conf\sslkey),并将申请的证书(for Nginx)放入sslkey文件夹:

2、配置 conf\nginx.conf 文件 443 端口:

worker_processes  4;


error_log    logs/error.log error;

events {
    worker_connections  51200;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    client_max_body_size 20m;
  
    server {
        listen       80;
        server_name  app.domain.com;

        location / {
            root   D:/pub/;
            index  index.html;
        }
    }

    server {
        listen       443 ssl;
        server_name  app.domain.com;

        ssl_certificate  sslkey/app.domain.com_bundle.crt;
        ssl_certificate_key  sslkey/app.domain.com.key;
        
        ssl_session_timeout 5m;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
	ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;
	ssl_prefer_server_ciphers on;

        #ssl_session_cache    shared:SSL:1m;
        #ssl_session_timeout  5m;

        #ssl_ciphers  HIGH:!aNULL:!MD5;
        #ssl_prefer_server_ciphers  on;

        location / {
            root   D:/pub/;
            index  index.html;
        }
    }
}

配置完成,以上 http 和 https 都可以访问了。

 

### 3.1 配置 SSL 证书以实现 HTTPS 访问Nginx配置 SSL 证书是提升网站安全性的关键步骤。通过启用 HTTPS 协议,可以确保用户与服务器之间的通信数据被加密传输,防止敏感信息泄露或被篡改。以下是如何使用 Let’s Encrypt 提供的免费 SSL 证书并通过 Certbot 工具进行自动化管理的方法来配置 Nginx 的详细过程。 #### 3.2 安装 Certbot 和生成 SSL 证书 首先需要安装 Certbot 及其 Nginx 插件,该插件能够自动完成证书申请和 Nginx 配置更新。对于基于 Debian/Ubuntu 的系统,执行如下命令: ```bash sudo apt update sudo apt install certbot python3-certbot-nginx ``` 随后,运行 Certbot 命令并按照提示输入域名(如 `example.com`)以生成 SSL 证书: ```bash sudo certbot --nginx -d example.com ``` Certbot 将自动与 Let’s Encrypt 的服务器交互,验证域名所有权,并下载对应的证书文件[^1]。 #### 3.3 修改 Nginx 配置以启用 HTTPS Certbot 在生成证书后会自动修改 `/etc/nginx/sites-available/default` 或相应站点配置文件中的 `server` 块内容,添加 HTTPS 相关设置。一个典型的配置示例如下: ```nginx server { listen 443 ssl; server_name example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; location / { root /var/www/html; index index.html; } } ``` 上述配置中指定了 SSL 证书路径、启用了 HTTPS 端口监听,并保留了原有的网站根目录设定[^1]。 #### 3.4 自动续签 SSL 证书 Let’s Encrypt 提供的证书有效期为 90 天,因此需定期续签以避免服务中断。Certbot 默认已配置定时任务(通过 `systemd` 或 `cron`),每天凌晨自动检查即将过期的证书并进行续签操作。手动测试续签流程可执行: ```bash sudo certbot renew --dry-run ``` 该命令将模拟实际的续签流程,确保配置无误且不会影响线上服务。 #### 3.5 强制 HTTP 重定向至 HTTPS 为了进一步增强安全性,建议将所有 HTTP 请求强制跳转到 HTTPS 版本。可在 Nginx 的 HTTP 配置块中添加如下规则: ```nginx server { listen 80; server_name example.com; return 301 https://$host$request_uri; } ``` 此配置将使访问者无论是否输入 `https://`,都会被引导至加密连接上[^1]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

程序员老油条

您的鼓励将是我创作的大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值