现在的域名,不加上 https 都不好意思出来混了,没有 https 的网站总感觉是在裸奔。
对于个人站长,自然是不愿意花大价钱去买ssl证书,肯定是找免费的证书。本文以阿里云为例,演示如何申请ssl证书
申请证书
进入阿里云 ssl 证书页面
点击购买证书
选择免费证书
购买成功后需要验证,一般选择 dns 验证即可
验证成功后需要等一会才能部署,可能需要几个小时
然后下载证书
以 nginx 为示例,将下载后的文件解压放到 nginx 配置文件同级目录
配置 nginx
阿里云有详细的 nginx 配置文档,详情参阅
以下是我的站点 https://www.itshutong.com
的配置示例
server {
listen 443 ssl;
server_name www.itshutong.com itshutong.com;
if ($http_host = itshutong.com) {
rewrite (.*) https://www.itshutong.com$1;
}
root web;
index index.html index.htm index.php;
# 证书的存放路径
ssl_certificate 2925181_www.itshutong.com_nginx/2925181_www.itshutong.com.pem;
ssl_certificate_key 2925181_www.itshutong.com_nginx/2925181_www.itshutong.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 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
include enable-php.conf;
location / {
index index.php;
try_files $uri $uri/ /index.php?$query_string;
}
}
# 80 端口转发到 https
server {
listen 80;
server_name itshutong.com;
rewrite ^(.*)$ https://www.$host$1 permanent;
}
server {
listen 80;
server_name www.itshutong.com;
rewrite ^(.*)$ https://$host$1 permanent;
}
必须确保站点的所有链接,包括 js css 图片等都是 https,浏览器上才会有小锁标识