
我这个博客网站刚搭建起来第二天,在手机端打开的时候就出现了这个抢红包的广告。还以为我的网站刚建成就被攻击了?中毒了?劫持了?……于是赶紧在网上一通搜,最后发现原来是因为网站采用的HTTP协议,传输过程都是明文的,很容易被运营商劫持,我这个广告应该就是运营商给加上去的。
解决办法很简单,我们采用将网站的协议改为HTTPS就可以了,HTTPS多了个S,也就是Secure。传输过程是通过密文传输的,是比较安全的。当然,具体是怎么加密的,我们就不深究了。接下来,我们将自己的网站布置成HTTPS协议。
网上有很多证书机构,不过基本上都是收费的,这里我们推荐Let’s Encrypt,这是个成立不久的证书机构,现阶段是完全免费的,并且一个证书可以绑定多个域名。不过每次申请只有90天的有效期,但可以通过脚本定期更新,配置好之后一劳永逸。本教程亲测有效,希望对正在寻找免费HTTPS方案的你有一定的帮助。
首先需要创建一个用于存放证书申请过程中的临时文件以及证书文件,例如 ssl ,无特别说明,后续操作都是在该目录下进行。进入该目录,创建一个 RSA 私钥用于 Let’s Encrypt 标识你的身份。
openssl genrsa 4096 > account.key
由于 Let’s Encrypt 使用的 ACME 协议需要 CSR(Certificate Signing Request,证书签名请求)文件。但在生成 CSR 文件之前需要创建域名私钥(这个域名私钥一定不能是第一步创建的账户私钥),下面先创建域名私钥:
openssl genrsa 4096 > domain.key
创建完域名私钥,就可以生成 CSR 文件了,分为两种情况:
1) 单域名
openssl req -new -sha256 -key domain.key -subj "/CN=yoursite.com" > domain.csr
这里将yoursite.com改成你的域名即可。
2) 多域名
openssl req -new -sha256 -key domain.key -subj "/" -reqexts SAN -config <(cat /etc/pki/tls/openssl.cnf <(printf "[SAN]\nsubjectAltName=DNS:yoursite.com,DNS:www.yoursite.com,DNS:subdomain.yoursite.com")) > domain.csr
在 CSR 中推荐把不带 www 和带 www 的域名都加进去,其他子域名根据需要进行添加即可。如果提示/etc/pki/tls/openssl.cnf文件无法找到,可以使用命令find / -name openssl.cnf找到openssl.cnf的路径,需要将上述/etc/pki/tls/openssl.cnf更改为该路径。域名ssl证书
Let’s Encrypt 会在签发证书时在你的服务器上生成一个随机验证文件,后续的域名所有权验证就是通过这个随机验证文件完成。
首先,需要创建一个用于存放验证文件的目录,且该目录建议一直保留于服务器上,例如:

mkdir /data/challenges/
再配置一个 HTTP 服务,例如 Nginx:
server {
server_name www.yoursite.com yoursite.com subdomian.yoursite.com;
location ^~ /.well-known/acme-challenge/ {
#存放验证文件的目录,需自行更改为对应目录
alias /data/challenges/;
try_files $uri =404;
}
location / {
rewrite ^/(.*)$ https://yoursite.com/$1 permanent;
}
}
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-70436-1.html
多少也能空出百来万的中国新娘
巴菲特那叫投资