简介
为了保障应用的安全性,我们在架构网络层的时候需要采用HTTPS协议。下面我将记录一下我在Nginx服务器上配置ssl证书实现HTTPS协议访问网站的过程。
服务器环境
- 腾讯云 CVM 标准型S3,操作系统为 Ubuntu Server 16.04.1 LTS 64位
配置过程
1、获取SSL证书
(1)进入腾讯云控制台,注册登录并进行实名验证。
(2)在云产品服务中搜索SSL证书管理服务,点击进入。
(3)点击申请证书,选用免费版的DVSSL证书,会出现如下页面。填入想要绑定的域名和自己的邮箱地址,其余内容均可不填。
(4)点击下一步进入域名身份验证界面,这里我们选用文件验证。文件验证的要求如下(图片截自官网):
(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.crt
和server.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访问