如何让网站支持https

84 阅读3分钟

阅读本文你可以了解

  1. DV、OV、EV证书的区别。
  2. 免费证书和付费证书的区别。
  3. 单域名证书、多域名证书、通配符证书的区别。
  4. 如何在阿里云购买证书。
  5. 如何给用Nginx让网站支持https。
  6. 一些踩坑记录。

简介

让网站支持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证书,由于安全等级低,一般只推荐用于测试环境。

blog.csdn.net/WoTrusCA/ar…

从证书对域名生效规则角度,可以分为单个域名的证书、多域名证书、通配符证书。它们有什么区别呢?

单个域名证书,一个证书只能指定一个域名

多域名证书,一个证书可以指定多个域名

通配符证书,可以指定二级域名,这个证书对二级域名下的所有子域名都生效

例如单域名证书只能指定www.lingtiku.com;多域名证书可以指定www.lingtiku.comm.lingtiku.com;通配符证书可以指定*.lingtiku.com,不管子域名是什么证书都有效。

下面我们看一个购买并部署证书的示例,在阿里云购买免费的DV,单域名证书,然后部署到ECS上的Nginx网站上。

购买证书

首先,在阿里云官网搜索“SSL证书”,购买,选择免费证书。购买后有20个单域名DV证书的额度,意味着你可以申请20个单域名。

然后在管理后台的SSL证书中,创建证书,通常几分钟就会颁发。


这样我们就获得了指定域名的证书了。

证书安装

阿里的官方文档有非常详细的说明

help.aliyun.com/document_de…

先下载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端口。

关注「灵题库」更多技术干货!