一、申请
首先去阿里云申请免费的SSL证书:搜索“数字证书管理服务”,去“/SSL 证书”里申请免费证书。申请之后半个小时就能下发,之后将证书下载下来,包含一个pem和一个key,假设名字分别为:domain.pem
和 domain.key
。
二、配置
- 检验nginx有没有安装
--with-http_ssl_module
:
cd /usr/local/nginx
sbin/nginx -V
如果有,就跳转到第2步,如果没有就安装(我是通过源码安装的,以源码安装为例):
--with-http_ssl_module
:https协议支持,构建和运行此模块需要 OpenSSL 库;
yum install -y openssl-devel
进入nginx源码,之后配置编译参数:
./configure --with-http_ssl_module
编译和安装:
make && make install
-
开启443端口:
- 上传pem和key:
cd /usr/local/nginx && mkdir cert
通过 scp
将文件上传到cert目录:
scp domain.pem root@xxx.xx.xxx.xx:/usr/local/nginx/cert/
scp domain.key root@xxx.xx.xxx.xx:/usr/local/nginx/cert/
- nginx配置:
# HTTPS server
server {
listen 443 ssl;
server_name 你的域名;
# ssl证书地址
ssl_certificate ../cert/domain.pem;
ssl_certificate_key ../cert/domain.key;
# ssl验证相关配置
ssl_session_cache shared:SSL:1m;
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 / {
root html;
index index.html index.htm;
}
}
将http重定向到https:
listen 80;
server_name dotts.top;
# 将http转到https
rewrite ^ https://$host$request_uri? permanent;
- 重启nginx:
killall nginx
nohup /usr/local/nginx/sbin/nginx &