使用浏览器时,您与此网站之间建立的连接不安全
的提醒很碍眼,所以今天为本站添加了SSL证书,启用 https://
申请SSL证书
在阿里云的 云盾证书服务(包年),免费的SLL证书,要先点击Symantec
和 一个域名
,就会出现 免费型DV SSL
的选项,然后就可以0元购买。
有两种域名验证方式:
- DNS验证方式
- 文件验证方式
通过验证就申请成功了。然后在证书控制台,下载并安装证书。
下载.pem
和 .key
文件,然后上传到服务器,知道路径就行。
安装SSL证书
这部分,主要是Nginx的操作。虽然使用LNMP一键安装包安装LNMP,但没有使用 lnmp ssl add
添加证书。
我的操作是,修改/usr/local/nginx/conf/vhost
路径下相应站点的 .conf
文件。
server
{
listen 80;
#listen [::]:80;
server_name blog.francis67.cc francis67.cc;
index index.html index.htm index.php default.html default.htm default.php;
root /home/wwwroot/blog.francis67.cc;
#SSL配置从这里新增
listen 443;
ssl on;
ssl_certificate /usr/local/nginx/conf/vhost/cert/xxx.pem;
ssl_certificate_key /usr/local/nginx/conf/vhost/cert/xxx.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配置到这里结束
include rewrite/other.conf;
#error_page 404 /404.html;
# Deny access to PHP files in specific directory
#location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }
include enable-php-pathinfo.conf;
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
location ~ /.well-known {
allow all;
}
location ~ /\.
{
deny all;
}
access_log /home/wwwlogs/y.log;
}
重启Nginx服务 /etc/init.d/nginx restart
参考:
typecho设置
- 配置config.inc.php
文件位于typecho根目录,新增如下内容:
/** 开启SSL */
define('__TYPECHO_SECURE__',true);
- 后台设置
后台管理—>基本设置—>站点地址,将 https://blog.francis67.cc 换成 https://blog.francis67.cc
- 更换全站链接
使用phpMyadmin在SQL中中执行:
UPDATE
typecho_contents SET TEXT = REPLACE( TEXT, 'http://www.opdev.me/', 'https://www.opdev.me/');
- Chrome警告
找到站点主题目录下的comments.php
文件,并搜索$this->commentUrl()
,将其替换为:echo str_replace("http","https",$this->commentUrl());
最后保存。
参考:
强制全站https
此时http
和https
应该都是可以访问的,如果想只使用https
,我们可以我通过Ningx将80端口(HTTPS)重定向到443端口(HTTPS),强制全站HTTPS。
修改/usr/local/nginx/conf/vhost
路径下相应站点的 .conf
文件。
把前面的listen 80;
注释掉,再添加一段
server
{
listen 80;
server_name blog.francis67.cc francis67.cc;
rewrite ^(.*) https://blog.francis67.cc$1 permanent;
}
参考:
目前有三张免费SSL证书,分别用在了blog.francis67.cc
、blog.francis67.cc
和 file.francis67.cc
,都已经启用了https://