背景

果然免费的东西就是不靠谱,今年年初在freenom.com上免费拿了个*.tk域名,本想着白嫖一年测试一下,结果好不容用爽了,这几天突然全瘫了。详细一查,不仅解析失效了,连后台域名管理记录全没了,不得已,留着老泪重新购买域名

后来一看*.tk要重新买一年居然要9.9刀,真是狮子大开口,后面查了一下*.com的域名才8.8刀,这个奸商.....原来的TK我不要了好吧,果断换*.com的域名啊!

换域名也不是一件简单的事,顾虑到的事情挺多,对于付费购买ssl证书的同志来说确实有点头疼,毕竟真金白银买的证书换一下域名就废了,使用Let's encrypt的同学倒是方便了,重新certbot 重申一下就可以了。另外一件麻烦的事就是Typecho上的资源、文章的地址都还是沿用原有的域名,如果需要使原来的资源可用,需要在数据库上做修改,现在就来看看需要怎么操作

1. Tpyecho修改域名

如果是博客玩得比较多的同学应该会优先处理这一部分内容,这里只需要执行几个SQL语句即可

mysql -uroot -p
>use typecho;
>UPDATE `typecho_options` SET `value` = 'https://${NEW_DOMAIN}' WHERE `typecho_options`.`name` = 'siteUrl' AND `typecho_options`.`user` =0;
>UPDATE `typecho_contents` SET `text` = REPLACE(`text`,'https://${OLD_DOMAIN}','${NEW_DOMAIN}');
>UPDATE `typecho_users` SET `url` = REPLACE(`url`,'https://${OLD_DOMAIN}','${NEW_DOMAIN}');

2. Let's encrypt更新证书

由于更换域名后我们的原有的证书已经无法使用了,需要使用Let's encrypt重新创建,不过在这之前,我们应该先将原有的证书吊销掉,然后再通过certbot重新创建SSL证书

# 吊销原有证书
certbot revoke --cert-path /etc/letsencrypt/archive/${YOUR_DOMAIN}/cert1.pem
# 重新创建证书 
certbot certonly --webroot -w /usr/share/nginx/html/typecho -d yourdomain.com -d www.yourdomain.com -d index.yourdomain.com -d web.yourdomain.com

#--webroot需要添加nginx的/目录,用于验证

创建证书后会输出现有的证书与私钥,一般会在以下路径

/etc/letsencrypt/live/${YOUR_DOMAIN}/fullchain.pem

/etc/letsencrypt/live/${YOUR_DOMAIN}/privkey.pem

之后还需要将Ngnix的证书地址配置到此处,不然登录网站会报安全问题。

标签: none