1、证书申请
1、阿里云或者腾讯云都有申请免费的证书,我的域名备案服务商是腾讯云,所以用的是腾讯云
2、登陆腾讯云,进入ssl申请界面https://console.cloud.tencent.com/ssl
3、按照步骤填写好证书绑定域名,邮箱,证书备注名,秘钥信息
4、域名验证,证书申请是需要验证域名的,阿里云ssl证书的认证提供了三种:
- 自动 DNS 验证,此时你需要在域名解析记录中,增加一条TXT记录,证明域名是你的,阿里云的域名的话就是自动增加一条认证记录
- 手工DNS验证,需要自行在域名解析记录中,增加一条TXT记录,进行域名认证
- 文件认证,按照说明下载认证文件传入服务器中,域名指向目录下,进行访问即可。
5、在域名的管理里,因为我用了阿里云的 DNS 解析服务,所以会自动添加一条 CNAME 记录,这条记录就是验证域名所有权用的:
2、下载证书
在腾讯证书管理目录中,如果申请的证书通过审核后,就可以进行下载。可以选择下载不同的类型,常见的有nginx,以及apach等服务器。根据自己网站的类型,选择下载对应的证书。上传到服务器目录中,解压后会获取到两个文件,文件后缀分别是 *.key,和 *.crt。
3、上传证书
登陆服务器并创建存储证书文件的目录
mkdir /usr/local/nginx/ssl
把申请并下载下来的证书,上传到上面创建的目录的下面。
证书上传后的路径 /usr/local/nginx/ssl/1_www.wanglingyue.com_bundle.crt /usr/local/nginx/ssl/2_www.wanglingyue.com.key
4、配置NGINX文件
可以允许网站同时支持http以及https。http使用的默认断后是80,https使用的默认顿口是443。
针对这个问题需要特殊说明下,服务器必须开启响应的80和443端口给外网。一般服务器的安全组是默认开启的,若没有开启可以自行搜索处理,centos7怎么开启80和443端口等。
下面是一个基本的监听 443 端口,使用了 SSL 证书的 NGINX 配置文件,创建一个配置文件:
vi /usr/local/nginx/conf/nginx.conf
把下面的代码粘贴进去:
server { listen 443; server_name www.wanglingyue.com; ssl on; root /usr/local/nginx/html; index index.html; ssl_certificate "/usr/local/nginx/ssl/wanglingyue/1_www.wanglingyue.com_bundle.crt"; ssl_certificate_key "/usr/local/nginx/ssl/wanglingyue/2_www.wanglingyue.com.key"; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL; ssl_prefer_server_ciphers on; }
上面的配置里,ssl_certificate 与 ssl_certificate_key 这两个指令指定使用了两个文件,就是你下载的证书,解压之后看到的那两个文件,一个是 *.crt,一个是 *.key。你要把这两个文件上传到服务器上的某个目录的下面。
重新加载 NGINX 服务:
./nginx -s reload
5、验证配置
在浏览器上输入带 https 的网站地址:https://www.wanglingyue.com
如果正确的配置了让服务器使用 SSL 证书,会在地址栏上显示一个绿色的小锁头图标。
点开那个小锁头,会显示安全连接,再打开 详细信息。
NGINX 配置使用 301 重定向,会让对 HTTP 网页的请求,重定向到 HTTPS 版本的网页上。
server {
listen 80;
server_name wanglingyue.com www.wanglingyue.com;
return 301 https://$host$request_uri;
}
6、cdn升级https
以上步骤走完,基本上网站https就升级成功啦,但由于本博客文件存储采用的是七牛云cdn,而cdn没有用https,浏览器会阻止http的cdn图片链接加载,页面上的图片显示不出来,所以还需要将cdn也升级为https,升级步骤请百度
原文作者:studytime
原文链接:https://www.studytime.xin/