现在很多云服务像阿里云与腾讯云都能提供免费的证书,在相应的云平台上也都有现成的文档供运维人员进行https证书配置。这里我所要记录的是另一种布署ssl证书的方式。
申请免费证书
打开https://www.sslforfree.com/ ,这是一个可以免费申请ssl证书的网站,网站截图如下:
在输入框中输入需要申请证书的域名,然后点击后面的Create Free SSL Certificate按钮,页面会跳转到如下界面:
有三种校验方式,每种校验方式都有对应详细的步骤说明,这里我们着重看下第二种方式:
校验文件的步骤比较简单,文件校验成功之后便可以下载三个文件,一个certificate.crt,一个boundle.crt和一个private.key文件。
合并crt文件
将boundle.crt中的内容拷到certificate.crt文件中,注意最好使用notepad++这种编辑器打开,合并后的文件如下:
配置
- 将合并后的certificate.crt和private.key放置到固定的目录里;
- 配置nginx.conf,其中server部分配置如下:
1. `server {`
2. `listen 80;`
3. `listen 443 ssl;`
4. `server_name www.zhongwanshequ.cn;`
5. `if ($scheme = http) {`
6. `return 301 https://$server_name$request_uri;`
7. `}`
8. `ssl_certificate C:/nginx/ssl/certificate.crt;`
9. `ssl_certificate_key C:/nginx/ssl/private.key;`
10. `ssl_session_timeout 5m;`
11. `ssl_ciphers HIGH:!aNULL:!MD5;`
12. `ssl_prefer_server_ciphers on;`
13.
14. `location / {`
15. `root html;`
16. `index index.html index.htm;`
17. `}`
18.
19.
20. `location ^~ /.well-known/acme-challenge/ {`
21. `alias C:/nginx/.well-known/acme-challenge/;`
22.
23. `}`
24. `}`
说明
下面这个片段的作用是将http请求也重定向到https上去。
1. `if ($scheme = http) {`
2. `return 301 https://$server_name$request_uri;`
3. `}`
reload一下nginx之后上面配置生效,可以用https来进行请求。
至此ssl证书的配置完成。另外需要注意下服务器防火墙的443端口是否打开,windows中要配置好入站规则。