0%

HTTPS泛域名证书申请之三-七牛云图片链接升级https

上篇文章 HTTPS泛域名证书申请之二-Nginx配置 说道,要让我的博客 https://www.itfanr.cc 用上全站的HTTPS安全模式,必须解决七牛云图片链接http的问题。

而七牛云官方推荐的https方案,费用比价高。那有没有什么免费的方法呢?答案就是通过 自定义域名 来设置。

也就是域名我们自定义,证书使用之前设置的泛域名证书,那么问题就搞定了。

在七牛云中添加自定义域名

在个人的 “存储空间” 设置菜单中选择 “绑定域名” ,域名类型中选择 “普通域名” 即可。

在 “加速域名” 处设置一个自定义的域名,比如我设置的是 qiniu.itfanr.cc

“通信协议” 选择 HTTPS 方式。

由于要为自定义域名添加证书文件,而之前也没有添加过,所以这里选择 “SSL 证书管理” 来设置。

在 “SSL证书服务 > 证书管理” 界面中,选择 “上传自有证书” 来添加之前申请到的证书文件。

设置完成后,等待七牛云处理。

处理完成后,会给出如下提示:

在阿里云设置域名CNAME

七牛云自定义域名添加成功后,还要添加域名的解析。也就是需要在域名服务商处添加一条 CNAME 记录。

以下是我在阿里云中添加的配置:

稍等片刻,等待生效。

设置七牛云图片外链默认域名

域名解析成功后,还要在七牛云中添加图片的默认域名。

打开七牛云 “存储空间” 设置,在 “内容管理” 中的 “外链默认域名” 处选择刚刚添加的 自定义域名,之后 “保存默认域名” 即可。

选择一张图片,通过自定义域名访问:

可以看到,已经能正常支持https了。

图片优化

一般直接截图或者上传本地的图片到七牛云后,通过链接直接访问,图片体积都会很大,加载时间也会很长。

而七牛云中也有相关的图片优化设置。打开 “存储空间设置” – “图片样式” 选项,在这里可以添加自定义的图片优化方案。

在 “样式分隔符设置” 中,可以设置分隔符。

那么,添加上图片优化的链接就如下:我的图片样式定义为blog,分隔符为 -

1
https://qiniu.itfanr.cc/blog/170809/26B1D9j4eI.jpg-blog

替换Hexo博客中已有的图片链接

因为之前的文章中也有添加很多的七牛云图片链接,但都是http 的,想要一篇文章一篇文章的替换也很麻烦,所以我就写了一个Py脚本来做替换的事。

Py脚本主要内容如下:完整代码查看:Leafney/md-qiniu-imges-replace: markdown文件中七牛云图片链接替换

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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
def md_img_replace(md_file):
"""
替换md文件中的图片链接
"""
result=False
post=md_read(md_file)
matches = re.compile(
'!\\[.*?\\]\\((.*?)\\)|<img.*?src=[\'\"](.*?)[\'\"].*?>').findall(post)

if matches and len(matches)>0:
# 该md文件中有图片

# 输出文件名称
print('文件:[{0}] 中含有图片'.format(md_file))
new_post=post
for sub_match in matches: # 正则里包含或,所以这里sub_matth是元组
# print(sub_match)
for match in sub_match:
if match and len(match)>0:
# 得到单张图片链接
print('找到图片链接:[{0}]'.format(match))
# 在这里遍历一遍后,发现我的文章中图片链接的特点主要有三种格式:
"""
https://cdn.jsdelivr.net/gh/leafney/blog-images@main/blog/20180924112100.png -- 已经符合要求的
http://ouej55gp9.bkt.clouddn.com/blog/20180920204113.png -- 只有旧版链接的
http://ouej55gp9.bkt.clouddn.com/blog/180116/B2c2Deah5B.png?imageslim -- 旧版链接带优化参数的
所以,下面的操作主要针对于上面的三种情况来处理

***** 所以,这里要改成针对于你自己的文章图片链接来处理 *****

"""
# print('----------------')

# 判断图片域名是否为 http://ouej55gp9.bkt.clouddn.com/ 是的话,则替换为 https://qiniu.itfanr.cc
if match.startswith('http://ouej55gp9.bkt.clouddn.com'):
# 记录下替换前的链接
old_url=match
new_url = match.replace(
'http://ouej55gp9.bkt.clouddn.com', 'https://qiniu.itfanr.cc')
# print('step_1_new_url:[{0}]'.format(new_url))

# 判断是否以 ?imageslim 结尾
if not match.endswith('imageslim'):
# 不是,在结尾添加
new_url += '?imageslim'

print('step_2_new_url:[{0}]'.format(new_url))
# 替换 post 中的 old_url为 new_url,并将新内容写回文件
new_post = new_post.replace(old_url, new_url)
result = True

print('----------------')
if result:
# 将内容重新写回文件
# print(new_post)
md_write(md_file,new_post)
print('ok-修改成功')
print('****************')

return result

执行过程记录:

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
文件:[./_posts/https-certificate-two-of-nginx-settings.md] 中含有图片
找到图片链接:[http://ouej55gp9.bkt.clouddn.com/blog/20180919001532.png]
step_2_new_url:[https://qiniu.itfanr.cc/blog/20180919001532.png?imageslim]
----------------
找到图片链接:[http://ouej55gp9.bkt.clouddn.com/blog/20180919180924.png]
step_2_new_url:[https://qiniu.itfanr.cc/blog/20180919180924.png?imageslim]
----------------
找到图片链接:[http://ouej55gp9.bkt.clouddn.com/blog/20180919171901.png]
step_2_new_url:[https://qiniu.itfanr.cc/blog/20180919171901.png?imageslim]
----------------
找到图片链接:[https://qiniu.itfanr.cc/blog/20180924000202.png?imageslim]
----------------
找到图片链接:[https://qiniu.itfanr.cc/blog/20180924000229.png?imageslim]
----------------
找到图片链接:[http://ouej55gp9.bkt.clouddn.com/blog/20180919165205.png]
step_2_new_url:[https://qiniu.itfanr.cc/blog/20180919165205.png?imageslim]
----------------
找到图片链接:[http://ouej55gp9.bkt.clouddn.com/blog/20180919170111.png]
step_2_new_url:[https://qiniu.itfanr.cc/blog/20180919170111.png?imageslim]
----------------
找到图片链接:[http://ouej55gp9.bkt.clouddn.com/blog/20180919173643.png]
step_2_new_url:[https://qiniu.itfanr.cc/blog/20180919173643.png?imageslim]
----------------
找到图片链接:[http://ouej55gp9.bkt.clouddn.com/blog/20180919180924.png]
step_2_new_url:[https://qiniu.itfanr.cc/blog/20180919180924.png?imageslim]
----------------
找到图片链接:[http://ouej55gp9.bkt.clouddn.com/blog/20180919180907.png]
step_2_new_url:[https://qiniu.itfanr.cc/blog/20180919180907.png?imageslim]
----------------
ok-修改成功
****************
文件:[./_posts/https-certificate-one-of-application.md] 中含有图片
找到图片链接:[https://qiniu.itfanr.cc/blog/20180921175821.png?imageslim]
----------------
找到图片链接:[http://ouej55gp9.bkt.clouddn.com/blog/20180918225700.png]
step_2_new_url:[https://qiniu.itfanr.cc/blog/20180918225700.png?imageslim]
----------------
找到图片链接:[http://ouej55gp9.bkt.clouddn.com/blog/20180918232923.png]
step_2_new_url:[https://qiniu.itfanr.cc/blog/20180918232923.png?imageslim]
----------------
ok-修改成功
****************
如有疑问或需要技术讨论,请留言或发邮件到 service@itfanr.cc