nginx https配置ssl证书实现访问https服务

  • 本文经过笔者实际测试,使用阿里云,搭建nginx服务器https访问配置。按照步骤进行,可完美实现你的本地配置!
  • 踩坑不易,希望同学多多支持!!

前提条件

  • 本文操作的内容,假定你已经为你的服务器安装了nginx服务(需要带有ssl模块支持的编译选项!!!)
  • 我的nginx版本是:nginx/1.14.0

操作方法

1、SSL证书的获取和部署方法

1.1 SSL证书的获取(阿里云)

  • 登录“阿里云控制台”,输入关键词寻找:SSL证书,找到“安全(云盾)”下的 SSL证书(应用安全)标签,点击进去
    在这里插入图片描述

  • 最左侧点击“证书资源包”,来获取免费的SSL证书
    在这里插入图片描述

  • 打开证书申请页面,填写申请内容,包括:域名、姓名、邮箱和手机号

  • 提交申请后,在“证书资源包”–>“证书管理” 标签下,会生成一个状态是“已签发”的”DigiCert免费版SSL“证书,点击“下载”
    在这里插入图片描述

  • 在弹出的右侧边框中,根据自己实际的web服务器,选择对应的下载(这里我选择的是Nginx)
    在这里插入图片描述

1.2 证书的部署

  • 证书下载后先解压,得到两个文件:.pem和.key
    在这里插入图片描述
    这两种格式,分别存储的是 证书base64加密 和 私钥base64加密,还有格式分割符
    .pem文件:存储的是证书内容
    .key文件:存储的是私钥内容
  • 在自己的云服务器中进行如下操作
    - (1)在nginx配置目录 /etc/nginx/ 下,创建一个 ssl 目录
    - (2)将.pem文件和.key文件,上传到该 ssl 目录下
	- <注>:其他目录文件无须纠结,与本文无关!!!

在这里插入图片描述

1.3 配置nginx

  • 编辑Nginx配置文件(nginx.conf),修改与证书相关的配置内容。
    在配置文件中定位到HTTP协议代码片段(http{}),并在HTTP协议代码里面添加以下server配置
    #以下属性中,以ssl开头的属性表示与证书配置有关。
    server {
    	##### 很多网站都没有提到这一点,我调试的时候踩了好多坑,请谨慎!!!
        listen 443 ssl;     ######## 必须要有 ssl 字段,否则443无法访问!!!!
        
        #配置HTTPS的默认访问端口为443。
        server_name mydomain.com; #需要将mydomain.com替换成证书绑定的域名。
        root html;
        index index.html index.htm;
        ssl_certificate ssl/cert.pem;  #需要将cert.pem替换成已上传的证书文件的名称。
        ssl_certificate_key ssl/cert.key; #需要将cert.key替换成已上传的证书密钥文件的名称。
        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; #表示使用的TLS协议的类型。
        ssl_prefer_server_ciphers on;
        location / {
            root html;  #站点目录。
            index index.html index.htm;
        }
    }
  • 该功能可根据实际情况选择:设置HTTP请求自动跳转HTTPS。如果你希望所有的HTTP访问自动跳转到HTTPS页面,则可以在需要跳转的HTTP站点下添加以下rewrite语句。
    server {
        listen 80;
        server_name mydomain.com; #需要将mydomain.com替换成证书绑定的域名。
        rewrite ^(.*)$ https://$host$1; #将所有HTTP请求通过rewrite指令重定向到HTTPS。
        location / {
            index index.html index.htm;
        }
    }
  • 保存退出
  • 启动或重启nginx:
    - 启动nginx:  nginx -c /etc/nginx/nginx.conf
    - 重启nginx:  nginx -s reload

2、https访问验证

  • 打开浏览器,输入url:https://mydomain.com,打开nginx首页
  • 此时可以看到该站点是安全的,说明nginx配置成功
    在这里插入图片描述

至此,该网站可以进行安全访问、微信小程序对接等工作!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

GoppViper

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

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

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

打赏作者

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

抵扣说明:

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

余额充值