当前位置:首页 > 编程相关 > Nginx > 正文内容

在nginx上配置https证书

martinsun2年前 (2021-01-14)Nginx650

HTTPS介绍

HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 。HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面,更多信息可在 百度百科 中了解。

也可以参考 阿里云官方的配置教程

准备工作

在开始配置之前,需要准备有效的https证书,这里使用阿里云的免费证书。

第一步 登陆阿里云官网,搜索SSL证书,在服务中点击如下导航购买证书资源包

点击后面的`立即购买`按钮,在弹出层中购买20个即可(20个为免费提供)

第二步 申请证书

在证书资源包中,点击下图按钮

需要申请几个域名的证书就设置成几个

第三步 补充资料

点击下方图中的证书申请,补充资料:

  • 证书绑定域名: 填写单个域名(免费的只支持填写单个)
  • 域名验证方式: 如果域名在当前阿里云账号,则会自动验证,否则需要自己手动根据提示配置验证
  • 联系人: 根据提示新增或选择联系人即可
  • 其余项默认即可

填写完成后,根据提示提交完成审核,等待审核即可。

第四步 获取证书文件

审核完成后,可以在列表中看到签发状态以及下载证书

点击下载按钮,下载nginx版本的证书

上传证书到服务器

将上面得到的证书文件zip解压或直接上传zip文件包值服务器(如果上传的是zip包,需要在服务器上面使用unzip命令解压)。

配置nginx支持https

#以下属性中,以ssl开头的属性表示与证书配置有关。
server {
    listen 443 ssl;
    #配置HTTPS的默认访问端口为443。
    #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
    #如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。
    server_name yourdomain.com; #需要将yourdomain.com替换成证书绑定的域名。
    root html;
    index index.html index.htm;
    ssl_certificate cert/cert-file-name.pem;  #需要将cert-file-name.pem替换成已上传的证书文件的名称。
    ssl_certificate_key cert/cert-file-name.key; #需要将cert-file-name.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;
    }
}
温习提示: 若配置之后,访问https链接无法加载,可先排查服务器是否开放443端口!若是阿里云的服务器,需要前往服务器的安全组中开放!

版权声明:本文由MartinSun发布,内容供学习参考使用。

图文说明:部分图文来源于网络,如侵权请联系删除。

本文链接:https://www.sunyonghong.com/?id=5

标签: nginxhttps
分享给朋友:
返回列表

没有更早的文章了...

下一篇:Nginx拦截指定url并跳转(匹配带参数的url)