七牛云升级HTTPS自定义域名

由于国家的一些政策原因七牛云最近下线了很多测试域名,博主由于工作繁忙,响应的比较迟钝,但是相信现在写一篇相关的操作文档应该也不迟。这篇文章针对自定义的HTTPS域名申请的内容,因此主要分为四个部分,分别是独立域名申请,HTTPS证书申请,域名解析绑定,以及全部博客内容链接替换。

独立域名申请

关于独立域名的申请,需要大家自己在阿里云上进行购买。一般来说,当你输入一个域名之后,比如qinjiangbo会出来一大堆域名,包括已注册的和未注册的,大家可以根据自己实际需要来进行购买。如下所示:

好了,选择好域名以后基本上就已经成功拥有自己一个独立的域名啦!转回到七牛云上,需要在下面这里点击申请自定义域名加速:

从图中其实可以看到,博主选择的是一个二级域名,为什么不使用一级域名呢,因为一级域名被用作其他更有价值的事情了,因此选择二级域名不会有DNS解析上的冲突

HTTPS证书申请

大家看过我的博客应该知道如何申请一个HTTPS证书吧,这里给一个传送门。利用FreeSSL升级网站系统到HTTPS

域名解析绑定

域名解析需要在你的服务商那里进行绑定,比如阿里云购买的可以在阿里云的域名解析控制台进行解析,由于博主的域名是通过海外的一个CDN服务商Cloudflare加速的,因此,域名解析托管在了Cloudflare。下面我就演示一下如何绑定CNAME域名。

这里解释一下CNAME域名,其实就是一个别名,用于将当前域名指向另一个域名,这样的话,访问当前域名就像访问其它域名一样。

上图中的image.qinjiangbo.com就是我的二级域名,而image.qinjiangbo.com.qiniudns.com则是七牛云给我们分配的一个CNAME域名。因此,我们需要在域名服务商这里进行解析。添加一个CNAME类型的解析就好了。如下:

上图中的解析名称只需要填写二级域名的第一节内容就好了,比如image,而解析值需要设置为image.qinjiangbo.com.qiniiudns.com这一个完整的内容。类型切记指定为CNAME否则会失败的。如果还有和博主一样使用Cloudflare的,一定要记得勾选掉右边那个橙色的云,因为那个代表代理,如果使用代理的话会失败

全部博客内容链接替换

好了,一般来说配置完CNAME就会立即生效了,但是七牛云的官网上面可能会存在延迟,大家可以通过dig命令或者nslookup命令来查看你的自定义域名,如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
➜  ~ dig image.qinjiangbo.com

; <<>> DiG 9.10.6 <<>> image.qinjiangbo.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3637
;; flags: qr rd ra; QUERY: 1, ANSWER: 19, AUTHORITY: 3, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;image.qinjiangbo.com. IN A

;; ANSWER SECTION:
image.qinjiangbo.com. 300 IN CNAME image.qinjiangbo.com.qiniudns.com.
image.qinjiangbo.com.qiniudns.com. 300 IN CNAME tiny32.china.line.qiniudns.com.
tiny32.china.line.qiniudns.com. 597 IN CNAME chinacdnweb.qiniu.com.w.kunlunno.com.
chinacdnweb.qiniu.com.w.kunlunno.com. 297 IN A 101.89.125.213
chinacdnweb.qiniu.com.w.kunlunno.com. 297 IN A 101.89.125.212
chinacdnweb.qiniu.com.w.kunlunno.com. 297 IN A 101.89.125.216
chinacdnweb.qiniu.com.w.kunlunno.com. 297 IN A 101.89.125.214
chinacdnweb.qiniu.com.w.kunlunno.com. 297 IN A 124.232.158.230
chinacdnweb.qiniu.com.w.kunlunno.com. 297 IN A 124.232.158.229
chinacdnweb.qiniu.com.w.kunlunno.com. 297 IN A 124.232.158.227
chinacdnweb.qiniu.com.w.kunlunno.com. 297 IN A 124.232.158.232
chinacdnweb.qiniu.com.w.kunlunno.com. 297 IN A 124.232.158.233
chinacdnweb.qiniu.com.w.kunlunno.com. 297 IN A 124.232.158.228
chinacdnweb.qiniu.com.w.kunlunno.com. 297 IN A 124.232.158.226
chinacdnweb.qiniu.com.w.kunlunno.com. 297 IN A 124.232.158.231
chinacdnweb.qiniu.com.w.kunlunno.com. 297 IN A 101.89.125.217
chinacdnweb.qiniu.com.w.kunlunno.com. 297 IN A 101.89.125.211
chinacdnweb.qiniu.com.w.kunlunno.com. 297 IN A 101.89.125.215
chinacdnweb.qiniu.com.w.kunlunno.com. 297 IN A 101.89.125.218

;; AUTHORITY SECTION:
w.kunlunno.com. 86397 IN NS ns5.kunlunno.com.
w.kunlunno.com. 86397 IN NS ns3.kunlunno.com.
w.kunlunno.com. 86397 IN NS ns4.kunlunno.com.

;; Query time: 18 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Sat Nov 03 18:08:13 CST 2018
;; MSG SIZE rcvd: 482

如果和博主一样出现下面的结果则表示OK了。哪怕是七牛云上还提示CNAME绑定的通知都可以忽略的。然后直接访问资源比如:

那么以前那么多的博客,如何批量来更改呢,像博主的245篇博文,如果一篇一篇更改,那还不累死?!因此需要Coding来解决,下面给出一段Java代码,大家可以参考这段Java代码来批量替换文件中的资源链接:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import com.google.common.collect.Lists;
import com.google.common.io.Files;

import java.io.File;
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.List;
import java.util.Objects;

/**
* @author jiangbo.qjb
* @date 2018/11/2
*/
public class ReplaceDomain {

private static final String OLD_DOMAIN = "obrxbqjbi.qnssl.com";
private static final String NEW_DOMAIN = "image.qinjiangbo.com";

private static final String DEST_DIR = "/Users/richard/Downloads/_posts";

public static void replace() throws IOException {

File dir = new File(DEST_DIR);
for (File f : Objects.requireNonNull(dir.listFiles())) {
List<String> lines = Files.readLines(f, Charset.defaultCharset());
StringBuffer sb = new StringBuffer();
for (String s : lines) {
sb.append(s).append("\n");
}
String content = sb.toString().replaceAll(OLD_DOMAIN, NEW_DOMAIN);
// 执行替换逻辑
Files.write(content.getBytes(), new File(f.getCanonicalPath()));
}

System.out.println("Done!");

}

public static void main(String[] args) {
try {
replace();
} catch (Exception e) {
e.printStackTrace();
}
}
}

大家一定要切记在读写文件的时候在每一行后面加上回车符\n,否则文件替换完格式就全乱了。另外,切记在更换内容前将所有的文件备份!备份!备份!重要的话说三遍!

分享到