本文主要介绍了如何创建一个免费的并且被各大浏览器默认认可的ssl证书,并且介绍了如何用Nginx配置证书,以及重定向Http到Https。
FreeSSL免费SSL证书
FreeSSL.org 是一个提供免费HTTPS证书申请的网站 ,目前支持通过这两家CA机构TrustAsia,Let’s Encrypt生成SSL证书。
我们这里选择TrustAsia,创建一个一年期限的ssl证书。
输入对应的域名,选择Ca机构,点击“创建免费的SSL证书”
输入邮箱地址1
在证书快到期的时候,Freessl会发邮件提醒你。
选择证书类型,验证类型为“File”,CSR生成为“浏览器生成”(为了安全,最好是选择我有CSR),点击生成,
会弹出如下界面
在服务器项目根目录下新建.well-known/pki-validation/fileauth.txt文件,复制“201804190313215v2qzo2quee1emf9z180awofxk4ju12koqxbaw1d531n0jv030”到fileauth文件中,点击“点击验证”
如果CA生成证书成功,直接下载下来就行。
至此 完成ssl证书的创建。
配置Nginx支持Https
把上一步生成的证书以及私钥上传到服务器上,然后配置Nginx支持https访问,如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31# vim /etc/nginx/nginx.conf
添加支持https的server
server {
listen 443 ssl;
server_name localhost;
root /data/blog;
# root /usr/share/nginx/html;
ssl_certificate "/data/chain/full_chain.pem";
ssl_certificate_key "/data/chain/private.key";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
Http请求重定向到Https
修改Nginx配置文件如下,在Http server中添加重定向语句:1
2
3
4
5
6server{
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
rewrite ^(.*)$ https://$host$1 permanent;
}
Freessl 相关
- 关于CSR生成的说明
1、浏览器生成
在浏览器支持 Web Cryptography 的情况下,我们默认使用浏览器根据用户的信息生成CSR文件(关于 Web Cryptography 的浏览器支持情况可点击 这里 了解详情)。
2、后端服务器生成
在浏览器不支持CSR文件生成的时候,我们会根据用户所填的信息,在后端服务器生成一个CSR文件。
3、上传自己的CSR文件
如果你有自己的CSR文件,并且想使用自己的CSR文件,那么可以点击上方表单中点击生成下方的文字,通过粘贴,使用自己的CSR文件。
- 关于域名验证的说明
CA 需要对您是否拥有该域名进行验证,这样才能给您颁发证书。这里有多种验证方式,您可以采用对您较为方便的方式进行。在进行下一步的同时,你将同意 Lets Encrypt service agreement 或 TrustAsia。如果您的网站有防火墙,请对 66.133.109.36 开放。如果您收到 504 网关超时,无法连接等其它错误, 请刷新页面重试;如果您有自己的CSR文件,可上传CSR文件之后进行手动验证。
1、手动验证(文件)
CA 将通过访问特定 URL 地址来验证您是否有改域名的所有权。因此,您需要下载给顶的验证文件,并上传到您的服务器
2、手动验证(DNS)
CA 将通过查询 DNS 的 TXT 记录来确定您对该域名的所有权。您只需要在域名管理平台将生成的 TXT 记录名与记录值添加到该域名下,等待大约 1 分钟即可验证成功
3、如果你有自己的CSR文件,可手动上传验证文件到您的域以验证所有权
CA 将通过查询 DNS 的 TXT 记录来确定您对该域名的所有权。您只需要在域名管理平台将生成的 TXT 记录名与记录值添加到该域名下,等待大约 1 分钟即可验证成功