Nginx配置ssl证书实现HTTPS访问

简介

为了保障应用的安全性,我们在架构网络层的时候需要采用HTTPS协议。下面我将记录一下我在Nginx服务器上配置ssl证书实现HTTPS协议访问网站的过程。

服务器环境

  • 腾讯云 CVM 标准型S3,操作系统为 Ubuntu Server 16.04.1 LTS 64位

配置过程

1、获取SSL证书

(1)进入腾讯云控制台,注册登录并进行实名验证。
(2)在云产品服务中搜索SSL证书管理服务,点击进入。
(3)点击申请证书,选用免费版的DVSSL证书,会出现如下页面。填入想要绑定的域名自己的邮箱地址,其余内容均可不填。

Nginx配置ssl证书实现HTTPS访问_第1张图片
申请表单

(4)点击下一步进入域名身份验证界面,这里我们选用文件验证。文件验证的要求如下(图片截自官网):

Nginx配置ssl证书实现HTTPS访问_第2张图片
文件验证要求

(5)登录自己的服务器,在根目录('/')下输入以下命令进入目标目录:

mkdir .well-known
cd .well-known
mkdir pki-validation
cd pki-validation

再使用vim指令创建fileauth.txt文件,并写入指定的文件内容(此处文件内容可能与上图中的文件内容不同,每个证书申请时都会有自己对应的文件内容)。
(6)为了实现外网访问这一文件,需要用Nginx服务器进行代理。创建配置文件nginx.conf,写入如下内容:

user root;

events {
  worker_connections 1024;
}

http {
  server { 
    listen  80;
    server_name  xxx;#此处为你自己的域名
    charset  utf-8;

    location /.well-known/pki-validation {
      alias   /.well-known/pki-validation/;
      index fileauth.txt; 
     }
   }
}

使用这一配置开启Nginx服务(此处若有疑问可见我的另一博客),在浏览器中输入对应的url检验是否可以成功访问该文件。
(7)等待系统审核通过之后,证书状态就会成为已颁发字样。

2、为Nginx配置SSL证书

(1)点击操作中的下载链接,得到证书的压缩包。解压后在其中的Nginx文件夹下会有两个文件,一个证书文件(* .crt)和一个密钥文件(* .key),将这两个文件分别重命名为server.crtserver.key,并复制到服务器上。
(2)在服务器上创建一个新的Nginx配置文件nginx.conf,将上边两个文件与配置文件放在同一目录中。在配置文件中写入如下配置(部分代码):

# nginx.conf
# 设置用户权限
user root;

events {
  worker_connections 1024;
}
http {
  # 配置服务器
  server {
      # 你监听的端口号
      listen  443;

      # 服务器
      server_name  xxx;#此处为你自己的域名
      charset  utf-8;

      # ssl设置
      ssl on;
      ssl_certificate  server.crt;
      ssl_certificate_key server.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;
      ssl_prefer_server_ciphers on;

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

  server {
    listen 80;
    server_name  xxx;#此处为你自己的域名
    rewrite ^(.*) https://$server_name$1 permanent;#将HTTP访问方式强制转接到HTTPS访问方式上
  }
}

(3)使用这一配置开启Nginx服务,此时便可以使用HTTPS协议访问该网站。

总结

Nginx配置ssl证书实现HTTPS访问的笔记就到此结束了,如果大家有什么疑问,可以随时提出。文档中有什么错误或者不足之处,也欢迎大家批评指正。

参考资料:
nginx配置ssl证书实现https访问

你可能感兴趣的:(Nginx配置ssl证书实现HTTPS访问)