网站配置免费的SSL安全证书,小白也能懂,给网站上SSL证书之后,你的网站会比没证书的更安全一点,而且可以使用http2.0协议来提升网站的性能,推荐一款在华为云上可申请的免费SSL证书,亲测可用。
什么是SSL证书?
SSL 证书就是遵守 SSL协议,由受信任的数字证书颁发机构CA,在验证服务器身份后颁发,具有服务器身份验证和数据传输加密功能。
SSL证书通过在客户端浏览器和WEB服务器之间建立一条SSL安全通道(Secure socket layer(SSL)安全协议是由Netscape communication公司设计开发。该安全协议主要用来提供对用户和服务器的认证;对传送的数据进行加密和隐藏;确保数据在传送中不被改变,即数据的完整性,现已成为该领域中全球化的标准。由于SSL技术已建立到所有主要的浏览器和WEB服务器程序中,因此,仅需安装服务器证书就可以激活该功能了),即通过它可以激活SSL协议,实现数据信息在客户端和服务器之间的加密传输,可以防止数据信息的泄露,保证了双方传递信息的安全性。
引用百度百科
什么是Http2.0?
简单来说,HTTP/2(超文本传输协议第2版,最初命名为HTTP2.0),是HTTP协议的第二个主要版本。HTTP/2是HTTP协议自1999年HTTP1.1发布后的首个更新,主要基于SPDY协议。
HTTP2.0的特点是:在不改动HTTP语义、方法、状态码、URI及首部字段的情况下,大幅度提高了web性能。
如何申请华为云的免费证书
1. 在华为云的控制台搜索SSL证书管理
2. 在证书列表->右上角点击购买
3. 选择证书类型-DV(Basic)、证书品牌-DigiCert、单域名、有效期一年,免费证书只能固定选择,购买即可,费用是0.0元,所以不用支付
4. 购买成功后要申请证书,申请时有两个选择 系统生成CSR、自己生成CSR,根据自己需要选择,本次选择系统生成CSR,因为免费证书只支持单域名,所以只能写 www.a.com或a.com
5. 域名DNS验证,按照操作说明在域名解析处把 txt记录值按要求填写完成后,按照验证方式自己验证一下,对手新手小白添加txt记录值时可能遇到提示缺少左引号《华为云解析TXT记录值提示无左引号》
注意:
在验证时不要犯小错误,操作说明提供的命令nslookup -qt=TXT _dnsauth.域名.com 这是windows上的命令,如果你是linux系统要把命令写完整 nslookup -querytype=TXT _dnsauth.域名.com
下载和nginx安装SSL证书
安装证书前,请务必将你的云服务器上安全组里把443端口打开
1. 在华为云SSL证书管理->证书列表中下载
2. 你证书下载完后解压出来,因为选择的系统生成CSR 所以拷贝Nginx目录下的.crt和.key到你的服务器Nginx安装目录创建cert目录下或者自己管理的目录中
# ls
Apache IIS Nginx Tomcat domain.csr
# Nginx目录下的文件
server.crt server.key
3. Nginx上的配置,目前的Nginx单独的域名server{...}配置都是在conf.d目录
server {
listen 443 ssl;
server_name a.com;
ssl_certificate /path/server.crt;
ssl_certificate_key /path/server.key;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
参数参数说明listenSSL访问端口号,设置为“443”。SSL设置为“on”,启用SSL功能。ssl_certificate证书文件“server.crt”。设置为“server.crt”文件的路径,且路径中不能包含中文字符,例如“cert/server.crt”。ssl_certificate_key私钥文件“server.key”。设置为“server.key”的路径,且路径中不能包含中文字符,例如“cert/server.key”。ssl_protocols使用的协议。ssl_ciphers配置加密套件,写法遵循OpenSSL标准。
4. 配置完成后验证Nginx配置是否正确
进入nginx执行目录下,执行以下命令:
sbin/nginx -t
配置正确,回显信息如下所示:
nginx.conf syntax is ok
nginx.conf test is successful
5. 重启Nginx后在浏览器中访问你的域名测试 https://a.com
注意
如果你的Nginx使用的docker容器运行的,你需要把server.crt和server.key放在本机目录映射给容器,举个例子:
docker run -d -p 80:80 -p 443:443 -v /本机路径/cert:/容器路径/cert nginx
使用容器的话,Nginx的配置文件中的路径应该写容器内的路径
配置Nginx Http请求转向Https
在配置Http转向Https时,请使用301,不要使用rewrite,否则搜索引擎抓取时会失败
完整的Nginx配置文件:
server {
listen 80;
server_name localhost;
return 301 https://${server_name}$request_uri;
}
server{
listen 443 ssl;
server_name localhost;
ssl_certificate /etc/nginx/cert/server.crt;
ssl_certificate_key /etc/nginx/cert/server.key;
ssl_session_timeout 5m;
# ssl_session_cache shared:SSL:1m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/access.log;
location / {
root /nginx/html
index index.html index.htm index.php
}
}
亲测结果,本人使用的是Docker容器运行的Nginx,有问题的伙伴可留言
华为云官方的证书配置文档 https://support.huaweicloud.com/scm_faq/scm_01_0023.html#scm_01_0023__zh-cn_topic_0171809251_li132139219148
SSL配置生成器 https://ssl-config.mozilla.org/
本文转载自本人博客 https://mypubtools.com
,