使用FreeSSL生成免费SSL证书,并为Nginx配置Https访问

文章目录
  1. 1. FreeSSL免费SSL证书
  2. 2. 配置Nginx支持Https
  3. 3. Http请求重定向到Https
  4. 4. Freessl 相关
  5. 5. 参考资料

本文主要介绍了如何创建一个免费的并且被各大浏览器默认认可的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
6
server{
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 分钟即可验证成功

参考资料
分享到