最近发现通过chrome打开我的博客后里面的图片全都是叉叉,原来现在chrome不能再访问安全页面里的不安全元素了,也就是说如果一个网站是https的、里面的图片都是http的链接,用chrome打开后里面图片就都是叉叉了。
- 当初为了方便我是用的github page搭建的博客,博客是https的(https://tallate.github.io);
- 图片全放到了自己租的云服务器上了,并用Nginx简单地提供查询功能,比如:/imgs/BigData/BigData-%E6%89%BE%E4%B8%AD%E4%BD%8D%E6%95%B0.png
see: Chrome 现在强制把 http 资源文件转成 https 了吗
为了继续用github page,现在得给我的图片加上https访问协议了。
配置过程
办个域名
大部分ssl证书都是注册到域名下的,为了方便先买个域名再办个域名解析。
- 买一个域名
万网上的。
我买的top域名,一年才9块。
- 域名解析
解析到自己服务器的IP即可
买ssl证书
腾讯云上有个免费的证书可以领,不过是1年的:https://buy.cloud.tencent.com/ssl?fromSource=ssl
按官网流程申请证书
下载下来可以得到一个压缩包,解压了就是证书和密钥文件。
安装证书
将上面压缩包中的Nginx子目录拷贝到服务器上,比如/etc/https
。
修改nginx配置,因为我是使用Docker来运行的,所以需要把本地的配置文件映射到容器中。
本地配置文件/etc/nginx/default.conf:
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
| server { # 改成https后80端口就不用了 # listen 80; # server_name localhost;
location / { root /usr/share/nginx/html; index index.html index.htm; }
error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; }
listen 443 ssl; # 1.1版本后这样写 server_name tallate.top; #填写绑定证书的域名 ssl_certificate /etc/https/1_tallate.top_bundle.crt; # 指定证书的位置,绝对路径 ssl_certificate_key /etc/https/2_tallate.top.key; # 绝对路径,同上 ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; #按照这个套件配置 ssl_prefer_server_ciphers on;
}
|
修改nginx容器的启动参数:
1 2 3 4 5 6
| docker run -d -p 443:443 \ -v /home/hgc/nginx/sources:/usr/share/nginx/html \ -v /home/hgc/nginx/logs:/var/log/nginx \ -v /etc/nginx:/etc/nginx/conf.d \ -v /etc/https:/etc/https \ nginx
|
- 注意云服务器的端口号也要开放了。
- 注意目录的权限,我图方便直接全分了个777。
使用https访问
原来是http://ip,现在改成
参考
https://www.cnblogs.com/chnmig/p/10343890.html