[建站基础系列] 07. 常用配置之基于阿里云免费SSL证书开启HTTPS服务
全站上HTTPS是好处多多的,譬如保障用户隐私信息安全、帮助用户识别钓鱼网站吧啦吧啦之类,但对于我们站长来说,https的最大好处是非常有利于SEO,Google已经公开声明,会给https站点增加额外的权重,相信百度之类国内搜索引擎也会很快跟进。
本文将结合阿里云的免费ssl证书服务,介绍如何给网站上HTTPS服务。
本文介绍的是单一域名的免费版SSL证书,如果需要多域名或者增强型证书,可以点此购买(有优惠)
阿里云免费SSL证书购买
首先,进入阿里云“CA证书服务”下单购单个域名的DV SSL证书,如下图,注意选择“免费型DV SSL”。
下单购买成功后,到SSL证书管理面板中补全信息,如下图。
下一步"请输入证书绑定的域名"中,填写完整的需要ssl保护的域名,譬如3w.typechodev.com
。
下一步填写域名申请人的信息,如实填写即可。当然,如果你不想个人信息在证书中暴露,可以填写一些假信息,一般情况下不会造成签发失败。注意,这步”域名验证类型“建议选DNS
,这个操作起来会方便一些。
最后,确认信息无误后,点击"提交审核",此时你的申请单进入审核流程。
审核状态如下。阿里云的ssl审核应该是机器自动审核的,所以一般情况下等几分钟,就可以进入下一步操作。
配置DNS验证SSL签发校验
typechodev.com的dns解析托管在dnspod,所以本文以dnspod为例对配置进行讲解,其他dns解析商操作类似。
阿里云机器初步审核通过之后,会生成DNS配置信息,我们按要求配置dns即可完成ssl的自动认证。登陆阿里云ssl管理面板,打开申请单,可以看到类似下图的信息,注意其中的主机记录
和记录值
。
登陆dnspod管理后台,新建如下记录值:
注意主机记录填写_dnsauth.3w
,不含主域名typechodev.com
部分,记录值则直接完整复制阿里云ssl管理面板提供的”记录值“的内容即可。
一般情况下,配置完dns,等5分钟左右,阿里云即会完整ssl证书的认证和自动签发。阿里云签发完证书之后,登陆管理后台可以看到下载证书的入口:
点击下载之后,即可下载到两个文件,分别是xxx.key
和xxx.pem
。
Nginx配置https
为方便描述,这里拿nginx作为例子进行讲解。apache的配置步骤类似,请自行解决哈~
首先,将上文下载到的xxx.key
和xxx.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标志。
版权声明:未经书面授权禁止转载、摘编、复制或建立镜像。对既成事实本站将保留所有的权利。
评论已关闭