Nginx 配置 HTTPS 完整过程

Nginx 配置 HTTPS 完整过程

使用SSL证书实现网站Https,防止数据遭窃取和篡改。
说明: 以下操作过程是在使用yum安装nginx情况下进行的,或是二进制手动安装则相关目录可能不同

阿里云下载免费证书

  1. 进入阿里云控制台搜索SSL => 点击[SSL证书(应用安全)]进入,然后点击[购买证书],如下:

image-20200108180804265

这里选择免费版

image-20200108181608837

如果有多个域名,可以在购买数量外添加,省得麻烦再次购买。这里是免费0元,直接点击购买支付成功后,点击证书申请

image-20200108182259431

然后补充信息,验证即可。成功后有消息通知再在SSL控制台已签发证书处下载所需服务器类型的证书,我们这里下载Nginx证书,之后将文件上传到服务器的 /etc/nginx/ 解压重命名为 cert

修改nginx.conf文件

$ cd /etc/nginx
$ cp nginx.conf nginx.conf.bak
$ vim nginx.conf

配置 https server

http {
		#将 http 重定向 https
		server {
        listen       80;
        server_name  www.baidu.com; #域名
        rewrite ^(.*)$ https://${server_name}$1 permanent; 
        
    }
    server {
    		#服务器端口使用443,开启ssl, 这里ssl就是上面安装的ssl模块
        listen       443 ssl;
        # 配置自己的域名,多个以空格分开
        server_name  baidu.com;

        #ssl证书地址
        ssl_certificate     /etc/nginx/cert/yourname.pem;  #pem文件的路径
        ssl_certificate_key  /etc/nginx/cert/yourname.key; # key文件的路径

        #ssl验证相关配置
        ssl_session_timeout  5m;    #缓存有效期
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;    #加密算法
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;    #安全链接可选的加密协议
        ssl_prefer_server_ciphers on;   #使用服务器端的首选算法

        location / {
            root   html;
            index  index.html index.htm;
        }

    }
}    

重启 nginx

$ systemctl reload nginx
### 如何在 Nginx 中正确配置 HTTPS 证书 为了实现更高的安全性并保护数据传输,配置 Nginx 支持 HTTPS 是非常重要的。以下是关于如何在 Nginx 中正确配置 HTTPS 证书的具体方法。 #### 获取 SSL/TLS 证书 首先需要获取有效的 SSL/TLS 证书。这可以通过受信任的证书颁发机构 (CA) 购买或者使用免费的服务(如 Let's Encrypt)。此过程通常涉及生成私钥和证书签名请求 (CSR),并将 CSR 提交给 CA 来获得最终的证书文件[^1]。 #### 修改 Nginx 配置文件 编辑 Nginx 的主要配置文件 `nginx.conf` 或者特定站点的虚拟主机配置文件。这些文件一般位于 `/etc/nginx/` 或 `/usr/local/nginx/conf/` 目录下。具体操作如下: 1. **启用 SSL 参数** 找到或添加与 SSL 相关的部分,并取消注释必要的指令。例如,在默认 HTTP 块中定义一个新的 server 块来处理 HTTPS 请求。 2. **指定证书路径** 将之前获取的 SSL 证书及其对应的私钥放置于服务器上的某个安全目录中(比如 `/etc/nginx/ssl/`),然后更新配置文件中的 `ssl_certificate` 和 `ssl_certificate_key` 字段指向它们的位置[^4]。 ```nginx server { listen 443 ssl; server_name example.com; ssl_certificate /etc/nginx/ssl/example.com.crt; ssl_certificate_key /etc/nginx/ssl/example.com.key; ... } ``` 上述代码片段展示了基本的 HTTPS 设置方式,其中指定了监听端口为标准的安全连接端口号 443 并启用了 SSL 功能;同时设置了公有证书以及私密钥匙所在的绝对路径。 #### 测试配置有效性 完成修改之后,可以运行命令检查语法是否有误: ```bash sudo nginx -t ``` 如果一切正常,则重新加载服务使更改生效而无需重启整个进程: ```bash sudo systemctl reload nginx ``` #### 验证部署成果 最后一步是在浏览器里尝试访问你的网站 URL 加上前缀 'https://' ,观察页面能否顺利载入并且地址栏显示锁形图标表示加密链接已建立成功[^2]^。此外还可以借助在线工具进一步检测安装质量,像 Qualys 提供的 SSL Labs Server Test 即是一个不错的选择。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值