[建站基础系列] 07. 常用配置之基于阿里云免费SSL证书开启HTTPS服务

全站上HTTPS是好处多多的,譬如保障用户隐私信息安全、帮助用户识别钓鱼网站吧啦吧啦之类,但对于我们站长来说,https的最大好处是非常有利于SEO,Google已经公开声明,会给https站点增加额外的权重,相信百度之类国内搜索引擎也会很快跟进。

本文将结合阿里云的免费ssl证书服务,介绍如何给网站上HTTPS服务。

本文介绍的是单一域名的免费版SSL证书,如果需要多域名或者增强型证书,可以点此购买(有优惠)

阿里云免费SSL证书购买

首先,进入阿里云“CA证书服务”下单购单个域名的DV SSL证书,如下图,注意选择“免费型DV SSL”。

[建站基础系列] 07. 常用配置之基于阿里云免费SSL证书开启HTTPS服务

下单购买成功后,到SSL证书管理面板中补全信息,如下图。

[建站基础系列] 07. 常用配置之基于阿里云免费SSL证书开启HTTPS服务

下一步"请输入证书绑定的域名"中,填写完整的需要ssl保护的域名,譬如3w.typechodev.com

[建站基础系列] 07. 常用配置之基于阿里云免费SSL证书开启HTTPS服务

下一步填写域名申请人的信息,如实填写即可。当然,如果你不想个人信息在证书中暴露,可以填写一些假信息,一般情况下不会造成签发失败。注意,这步”域名验证类型“建议选DNS,这个操作起来会方便一些。

[建站基础系列] 07. 常用配置之基于阿里云免费SSL证书开启HTTPS服务

最后,确认信息无误后,点击"提交审核",此时你的申请单进入审核流程。

[建站基础系列] 07. 常用配置之基于阿里云免费SSL证书开启HTTPS服务

审核状态如下。阿里云的ssl审核应该是机器自动审核的,所以一般情况下等几分钟,就可以进入下一步操作。

[建站基础系列] 07. 常用配置之基于阿里云免费SSL证书开启HTTPS服务

配置DNS验证SSL签发校验

typechodev.com的dns解析托管在dnspod,所以本文以dnspod为例对配置进行讲解,其他dns解析商操作类似。

阿里云机器初步审核通过之后,会生成DNS配置信息,我们按要求配置dns即可完成ssl的自动认证。登陆阿里云ssl管理面板,打开申请单,可以看到类似下图的信息,注意其中的主机记录记录值
[建站基础系列] 07. 常用配置之基于阿里云免费SSL证书开启HTTPS服务

登陆dnspod管理后台,新建如下记录值:

[建站基础系列] 07. 常用配置之基于阿里云免费SSL证书开启HTTPS服务

注意主机记录填写_dnsauth.3w,不含主域名typechodev.com部分,记录值则直接完整复制阿里云ssl管理面板提供的”记录值“的内容即可。

一般情况下,配置完dns,等5分钟左右,阿里云即会完整ssl证书的认证和自动签发。阿里云签发完证书之后,登陆管理后台可以看到下载证书的入口:

[建站基础系列] 07. 常用配置之基于阿里云免费SSL证书开启HTTPS服务

点击下载之后,即可下载到两个文件,分别是xxx.keyxxx.pem

Nginx配置https

为方便描述,这里拿nginx作为例子进行讲解。apache的配置步骤类似,请自行解决哈~

首先,将上文下载到的xxx.keyxxx.pem上传到我们的服务器,这里假设放在/var/cert/目录下。

root@iZ28m17yr8oZ:/var# tree /var/cert/
/var/cert/
├── 214353867270544.key
└── 214353867270544.pem

然后,假设你已经假设好了基本的nginx,基本的站点配置如下:

server {
    listen 80;
    listen [::]:80;

    root /var/www/typechodev.com;
    index index.html index.php;

    server_name 3w.typechodev.com;

    location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        try_files $uri $uri/ =404;
    }

    location ~ \.php($|/.*)$ {
        include snippets/fastcgi-php.conf;

        # With php7.0-fpm:
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }
    access_log /var/log/nginx/typechodev.access.log;
    error_log /var/log/nginx/typechodev.error.log;
}

然后在此基础上增加https证书配置:

server {
    listen 80;
    listen [::]:80;

    root /var/www/typechodev.com;
    index index.html index.php;

    server_name 3w.typechodev.com;

    #SSL配置从这里新增
    listen 443;
    ssl on;
    ssl_certificate   /var/cert/214353867270544.pem;
    ssl_certificate_key  /var/cert/214353867270544.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    #SSL配置到这里结束

    location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        try_files $uri $uri/ =404;
    }

    location ~ \.php($|/.*)$ {
        include snippets/fastcgi-php.conf;

        # With php7.0-fpm:
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }
    access_log /var/log/nginx/typechodev.access.log;
    error_log /var/log/nginx/typechodev.error.log;
}

最后,sudo nginx -s reload重新加载nginx配置,ssl证书即可生效。chrome访问https://3w.typechodev.com就可以看到标绿的https标志。


版权声明:未经书面授权禁止转载、摘编、复制或建立镜像。对既成事实本站将保留所有的权利。

阿里云https证书ssl @TypechoDev 阿里云免费ssl, ssl证书, https, 加密