领取免费的证书
这里的证书用的是Let’s Encrypt证书,Let’s Encrypt是免费的,开源的,不过需要三个月续一次证书。官网:https://letsencrypt.osfipin.com/。 进入网站后注册账号,然后返回列表中,列表上方有申请新证书按钮点击申请。
然后返回列表中,查看详情。这个生成验证需要一定的时间,之后需要验证这个域名是否是你拥有的,就是在阿里云域名中配置TXT。具体的操作Let’s Encrypt网站每一步都有详细的说明,包括nginx配置。
安装证书
在远程服务器创建证书存放的文件夹
cd /etc/nginx
sudo mkdir path
修改新创建文件夹path的权限为sudo chmod 777 path
从Let’s Encrypt网站下载证书到本地windows电脑中,然后解压文件。进入解压过后的文件夹中执行下面的命令
scp -P 39999 path/fullchain.crt root_agent@111.111.111.111:/etc/nginx/path/
scp -P 39999 path/private.pem root_agent@111.111.111.111:/etc/nginx/path/
上面的命令是把本地windows电脑中的两个文件拷贝到远程服务器/etc/nginx/path/
文件夹中
进入到远程服务器中查看证书
cd /etc/nginx/path
ls
# fullchain.crt private.pem
查看文件已经存在,接着配置到nginx中,打开cllxx-cn-80.conf
sudo vim /etc/nginx/conf.d/cllxx-cn-80.conf
写入下面的代码
server {
listen 80; #监听80端口
listen 443 ssl http2; #监听443端口
ssl on;
server_name cllxx.cn www.cllxx.cn;
# 网站开启gzip
gzip on;
gzip_comp_level 6;
gzip_vary on;
gzip_min_length 1000;
gzip_proxied any;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
gzip_buffers 16 8k;
# 网站目录
root /data/www/blog;
index index.html;
# http 转 https
if ($server_port = 80 ) {
return 301 https://$host$request_uri;
}
# 证书配置
ssl_certificate path/fullchain.crt;
ssl_certificate_key path/private.pem;
ssl_protocols TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
location ~ .*\.(ico|gif|jpg|jpeg|png|bmp|swf)$ {
access_log off;
expires 1d;
}
location ~ .*\.(js|css|txt|xml)?$ {
access_log off;
expires 12h;
}
location / {
try_files $uri $uri/ =404;
}
# 网站log存放的目录
access_log /data/wwwlogs/blog.log;
}
保存后老样子验证sudo nginx -t
,没问题后重启nginxsudo service nginx restart
验证https
输入https
查看是否成功,如果网站正常访问就成功了。