现在HTTPS越来越来越来越流行,甚至Chrome将非HTTPS站点明显的标记为不安全,所以为自己的域名申请一个HTTPS证书很有必要
HTTPS
HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。
HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。
免费申请HTTPS证书
Fressl 是一个可以申请免费证书的网站。它提供3种品牌的证书:Let's Encrypt
、 Let's Encrypt V2
和TrustAsia
, 具体证书的类型和有效时间可以自行去官网查看,我们这里要说的是在申请证书时验证域名的小技巧。
一般有两种验证方式:文件验证和域名验证。
对于域名验证,就是通过给域名解析特定的值来验证(但是我不常用)
第二种是文件验证方法,通过在服务器上配置特定的访问路径来验证。
通过验证后,你就可以下载你的证书和秘钥来为你的域名配置HTTPS了。
这里给大家一个利用nginx配置文件验证的方法,nginx配置如下:
1
2
3
4
5
6
7
8
9
10
11
12
server {
listen 80;
...
location = /.well-known/pki-validation/fileauth.txt
{
default_type text/plain;
return 200 '201903250003333cpmpl49g1psxj1r86w70mmpi27g61r4f7u2bthwedki0trwtx';
}
...
}
这样配置后,通过访问 http://YOUR-IP/.well-known/pki-validation/fileauth.txt
即可访问到你设定的文本。
nginx配置HTTPS
通过nginx配置https很简单, 代码如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
...
server {
listen 443; #监听443 端口
server_name heb1c.cn;
location = / {
proxy_pass http://server1;
}
ssl on; # 开启ssl
ssl_certificate /xxx/full_chain.pem; #证书路径
ssl_certificate_key /xxx/private.key; #秘钥路径
}
...
通过以上配置后,重启nginx即可实现HTTPS访问。
原创作品,转载请注明来源 https://hebicheng.github.io