本文接上一篇CentOS下使用Nginx+Git部署hexo
服务器端
-
在nginx文件夹下新建一个目录用来存放证书
1
2$ cd /etc/nginx
$ mkdir cert -
打开配置文件
1
$ vim /etc/nginx/nginx.conf
如果你的server节点在引用的文件中,请打开相应文件,如:
1
$ vim /etc/nginx/conf.d/default.conf
不熟悉vim的基本操作话,请看文章开头的链接
-
在配置文件中新增一个https的
server
节点1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21server {
# 服务器端口使用443,开启ssl, 这里ssl就是上面安装的ssl模块
listen 443 ssl;
# 域名,多个以空格分开
server_name hack520.com www.hack520.com;
# ssl证书地址
ssl_certificate /etc/nginx/cert/ssl.pem; # pem文件的路径
ssl_certificate_key /etc/nginx/cert/ssl.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节点,如果是按照上一篇教程的设置,这部分不需修改
location / {
root html;
index index.html index.htm;
} -
配置http重定向https
在配置文件中找到http的
server
节点,注释掉原有的部分,添加以下配置1
2
3
4
5listen 80;
server_name localhost; #将localhost修改为您证书绑定的域名,例如:www.example.com。
rewrite ^(.*)$ https://$host$1 permanent; #将所有http请求通过rewrite重定向到https。
location / {
index index.html index.htm; -
保存文件并退出
客户机端
-
进入服务器的控制台,配置安全组设置,打开用于https的服务器
443
端口 -
为你的域名申请一个SSL证书,本文使用的是阿里提供的,由赛门铁克签发的免费一年证书。
-
下载证书文件,解压后其中有两个后缀为
.pem
和.key
的文件 -
重命名为
ssl.pem
和ssl.key
-
打开终端使用scp命令上传文件到服务器
scp语法格式
scp local_file remote_username@remote_ip:remote_folder
1
2
3
4
5$ scp local_file/ssl.pem remote_username@remote_ip:/etc/nginx/cert/
$ scp local_file/ssl.key remote_username@remote_ip:/etc/nginx/cert/
# local_file替换成本地文件的路径
# remote_username替换成服务器的用户名
# remote_ip替换成服务器的IP
服务器端
-
测试配置文件是否有问题
1
$ nginx -t
出现以下字样说明配置正确,如报错,根据错误修改
1 | nginx: the configuration file /etc/nginx/nginx.conf syntax is ok |
-
重启Nginx
1
$ service nginx restart
-
打开浏览器测试
参考
《Nginx 安装 SSL 配置 HTTPS 超详细完整全过程》
《在Nginx/Tengine服务器上安装证书》
封面图片来源 kinsta.com
2020.03.14