如何用 nginx 配置 https 加密访问?
时间:2023-02-18 03:52:01 | 来源:建站知识
时间:2023-02-18 03:52:01 来源:建站知识
阅读本文你可以了解
- DV、OV、EV证书的区别。
- 免费证书和付费证书的区别。
- 单域名证书、多域名证书、通配符证书的区别。
- 如何在阿里云购买证书。
- 如何给用Nginx让网站支持https。
- 一些踩坑记录。
简介
让网站支持https,需要ca证书。证书包括了公钥和私钥。通常web服务器只要指定证书地址,就可以正常工作了,web服务器会根据证书中提供的公钥私钥进行ssl或者tsl通信,并向浏览器提供证书内容以表明身份。
按照验证等级不同划分:域名型DV SSL证书(Domain Validation)、企业型OV(Organization Validation) SSL证书、增强型EV(Extended Validation) SSL证书。
简单地说,DV、OV、EV证书的安全等级是递增的,DV安全等级最低,它只支持验证域名所有权,即浏览器能够确定你的证书属于这个域名,但没有企业组织的验证,OV、EV的安全性更高一些。现在大部分企业都使用安全等级最高的EV证书。
DV、OV、EV证书的签发时间则和安全性成反比,DV可能在申请后几分钟就可以签发,而OV和EV由于证书颁发方需要对企业的材料审查,所以需要几天时间。
免费的证书都是DV证书,由于安全等级低,一般只推荐用于测试环境。
https://blog.csdn.net/WoTrusCA/article/details/116987862从证书对域名生效规则角度,可以分为单个域名的证书、多域名证书、通配符证书。它们有什么区别呢?
单个域名证书,一个证书只能指定一个域名
多域名证书,一个证书可以指定多个域名
通配符证书,可以指定二级域名,这个证书对二级域名下的所有子域名都生效
例如单域名证书只能指定
www.lingtiku.com
;多域名证书可以指定
www.lingtiku.com
、
m.lingtiku.com
;通配符证书可以指定
*.lingtiku.com
,不管子域名是什么证书都有效。
下面我们看一个购买并部署证书的示例,在阿里云购买免费的DV,单域名证书,然后部署到ECS上的Nginx网站上。
购买证书
首先,在阿里云官网搜索“SSL证书”,购买,选择免费证书。购买后有20个单域名DV证书的额度,意味着你可以申请20个单域名。
然后在管理后台的SSL证书中,创建证书,通常几分钟就会颁发。
这样我们就获得了指定域名的证书了。
证书安装
阿里的官方文档有非常详细的说明
https://help.aliyun.com/document_detail/109827.html先下载nginx的证书,包含两个文件一个.pem,一个key
下载好后,把证书上传到服务器,在Nginx的配置目录中创建一个
cert
目录(我这里目录是
/www/server/nginx/conf/cert
),然后把证书文件放到里面。
接下来配置Nginx,监听443端口,并指定证书文件位置。
server { listen 443 ssl; server_name www.lingtiku.com; ssl_certificate cert/7558137_www.lingtiku.com.pem; ssl_certificate_key cert/7558137_www.lingtiku.com.key; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on;}
我们还可以指定http的访问自动跳转到https
server { listen 80; server_name www.lingtiku.com; rewrite ^(.*) https://$server_name$1 permanent;}
注意事项
如果配置好后浏览器仍不能访问,可能是服务器没有放开443端口,阿里云的ESC的安全组中需要放开443端口。
还有其他可能拦截端口的应用,也要放开,比如使用宝塔的话,默认拦截443端口,在“安全”一栏中设置放行443端口。
关注「灵题库」,更多技术干货!