文章来源:原创
一直以来用的是http,被大佬们嘲笑,今天有空升级一下,走了很多弯路,下面简单说一下步骤:
1.升级HTTPS
(1)先到我的阿里轻量服务器上申请一个免费的SSL证书,期限一年,一年后再更新。
(2)点击下载,根据服务器需要下载对应的证书。
我的是windows版apathe2.4,下载后有三个文件:public.crt是证书文件,key文件是私钥,chain.crt是链文件(其实我也不知道是什么,好像是根证书)
(3)将三个证书文件上传到apache的conf目录下(当然上传位置可以自定义),我是传到了conf/cer下面
(4)修改httpd.conf文件
①首先启用这两个模块(即把前面的注释“#”号去掉)
要特别注意红框内的模块,也要一并启用,我就是一开始没启用导致apache一直启动不了,走了不少弯路,查了好多资料,后来通过httpd.exe -t 命令找到的错误。
②启用Include conf/extra/httpd-ssl.conf
# Secure (SSL/TLS) connections
Include conf/extra/httpd-ssl.conf
#
# Note: The following must must be present to support
# starting without SSL on platforms with no /dev/random equivalent
# but a statically compiled-in mod_ssl.
③修改这部分,把Require all Deny 改成granted,否则有403错误。
<Directory "${SRVROOT}/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>
OK,到这里httpd.conf部分就改完了。
④修改conf/extra/httpd-ssl.conf,将ServerName改成你的域名
<VirtualHost _default_:443>
# General setup for the virtual host
DocumentRoot "${SRVROOT}/htdocs/blog"
ServerName www.flypig.xyz:443
ServerAdmin flypig.xyz@outlook.com
将从阿里下载并上传到conf/cer目录下的的证书,按路径修改
SSLCertificateFile "${SRVROOT}/conf/cer/www.flypig.xyz_public.crt"
#SSLCertificateFile "${SRVROOT}/conf/server-dsa.crt"
#SSLCertificateFile "${SRVROOT}/conf/server-ecc.crt"
# Server Private Key:
# If the key is not combined with the certificate, use this
# directive to point at the key file. Keep in mind that if
# you've both a RSA and a DSA private key you can configure
# both in parallel (to also allow the use of DSA ciphers, etc.)
# ECC keys, when in use, can also be configured in parallel
SSLCertificateKeyFile "${SRVROOT}/conf/cer/www.flypig.xyz.key"
#SSLCertificateKeyFile "${SRVROOT}/conf/server-dsa.key"
#SSLCertificateKeyFile "${SRVROOT}/conf/server-ecc.key"
# Server Certificate Chain:
# Point SSLCertificateChainFile at a file containing the
# concatenation of PEM encoded CA certificates which form the
# certificate chain for the server certificate. Alternatively
# the referenced file can be the same as SSLCertificateFile
# when the CA certificates are directly appended to the server
# certificate for convenience.
SSLCertificateChainFile "${SRVROOT}/conf/cer/www.flypig.xyz_chain.crt"
这里:
# while OpenSSL disabled these by default in 0.9.8zf/1.0.0r/1.0.1m/1.0.2a.
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
SSLProxyCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES
和这里:
# protocol or later should remain in use.
SSLProtocol all -SSLv3 -SSLv2
SSLProxyProtocol all -SSLv3 -SSLv2
考虑兼容性,随你改或不改,反正我也不懂,我看资料上改了,我也改了,哈哈。
⑤惊心动魄的时候到了,重启Apache服务,如果正常重启,恭喜你,成功了。如果没有,再根据logs/error.log查看问题吧。
⑥下面修改七牛的配置。
在这里开启HTTPS配置,我用的是七牛申请的免费证书,申请很简单,略过。
稍事片刻,启用成功。
2.批量替换博客文章图片地址
不知道为什么,我的博客文章里原来用的都是http地址的图片链接,升级成https后,图片还正常显示,不知道有哪位大佬清楚到底是什么原因,日后再研究吧。
补充一下,把博客文章中图片地址批量替换:
操作之前先做好数据库的备份(重要)
我用的是SQLite数据库,数据库只有一个文件,用和谐版的navicat连接到数据库上,打开typecho_contents表,文章都存在text字段下面,然后用查找替换工具
一键完成,我这次一共是替换了354个,如果逐个打开弄,想想就头疼!
补充一下
记得把数据库中所有涉及到的本站的http地址都替换掉,比如一开始我就忘记替换typecho_fields字段里的图片地址了,导致手机浏览首页总是在请求http资源,显示小叹号,不安全的信息。
替换完成后
3.关于伪静态,顺便隐藏index.php
(1)修改httpd.conf文件
启用rewrite模块
LoadModule rewrite_module modules/mod_rewrite.so
#LoadModule sed_module modules/mod_sed.so
(2)在Apache根目录建一个.htaccess的文件(注意必须带. 这是Linux文件系统中隐藏文件的标志),我是windows的服务器,建这个文件麻烦一点儿,因为windows不支持无文件名的文件,最简单的方法是利用命令行的copy con 命令,打开cmd命令行,然后,使用屏幕编辑命令copy con .htaccess后回车,随便输点儿什么东西,最后按下ctrl+z结束编辑,就成功生成了.htaccess。然后用VsCode打开文件,把下面的代码拷贝进去。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]
</IfModule>
(3)在typecho主题设置--永久链接中,启用地址重写功能。
4.底部网站运行统计代码
代码来源于:羡鱼日记博客,感谢@(真棒)
(1)运行时间统计
<!-- 网站运行计时统计 start-->
<center>
<span id="runtime_span"></span>
<script type="text/javascript">function show_runtime(){window.setTimeout("show_runtime()",1000);X=new
Date("2/14/2021 00:00:00");
Y=new Date();T=(Y.getTime()-X.getTime());M=24*60*60*1000;
a=T/M;A=Math.floor(a);b=(a-A)*24;B=Math.floor(b);c=(b-B)*60;C=Math.floor((b-B)*60);D=Math.floor((c-C)*60);
runtime_span.innerHTML="本站已安全运行: "+A+"天"+B+"小时"+C+"分"+D+"秒"}show_runtime();</script>
</center>
<!-- 网站运行计时统计 over-->
(2)网站访客统计(数据为自2021年6月20日以来)
<script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
<span id="busuanzi_container_site_pv">本站总访问量<span id="busuanzi_value_site_pv"></span>次</span>
<span id="busuanzi_container_site_uv">本站访客数<span id="busuanzi_value_site_uv"></span>人次</span>
5.首页的网站动态公告代码
感谢隔壁小胡的博客的分享@(真棒)
<div id="chakhsu"></div> <script> var chakhsu = function (r) { function t() { return
b[Math.floor(Math.random() * b.length)] } function e() { return String.fromCharCode(94 *
Math.random() + 33) } function n(r) { for (var n = document.createDocumentFragment(), i = 0; r >
i; i++) { var l = document.createElement("span"); l.textContent = e(), l.style.color = t(),
n.appendChild(l) } return n } function i() { var t = o[c.skillI]; c.step ? c.step-- : (c.step = g,
c.prefixP < l.length ? (c.prefixP >= 0 && (c.text += l[c.prefixP]), c.prefixP++) : "forward" ===
c.direction ? c.skillP < t.length ? (c.text += t[c.skillP], c.skillP++) : c.delay ? c.delay-- :
(c.direction = "backward", c.delay = a) : c.skillP > 0 ? (c.text = c.text.slice(0, -1), c.skillP-
-) : (c.skillI = (c.skillI + 1) % o.length, c.direction = "forward")), r.textContent = c.text,
r.appendChild(n(c.prefixP < l.length ? Math.min(s, s + c.prefixP) : Math.min(s, t.length -
c.skillP))), setTimeout(i, d) } /*以下内容自定义修改*/ var l = "逻辑只是工具, ", o = ["心地才是主宰!",
].map(function (r) { return r + "" }), a = 2, g = 1, s = 5, d = 75, b = ["rgb(110,64,170)",
"rgb(150,61,179)", "rgb(191,60,175)", "rgb(228,65,157)", "rgb(254,75,131)", "rgb(255,94,99)",
"rgb(255,120,71)", "rgb(251,150,51)", "rgb(226,183,47)", "rgb(198,214,60)", "rgb(175,240,91)",
"rgb(127,246,88)", "rgb(82,246,103)", "rgb(48,239,130)", "rgb(29,223,163)", "rgb(26,199,194)",
"rgb(35,171,216)", "rgb(54,140,225)", "rgb(76,110,219)", "rgb(96,84,200)"], c = {text: "",
prefixP: -s, skillI: 0, skillP: 0, direction: "forward", delay: a, step: g}; i() };
chakhsu(document.getElementById('chakhsu')); </script> <div>
6、跨域问题
在七牛域名管理的HTTP响应头里设置,如下图。
大功告成!
以上就是粗略的,我的升级HTTPS+伪静态+批量替换图片地址+网站运行统计+网站动态公告+解决跨域问题的升级之路,大佬贱笑了@(太开心)。
隔壁小胡
2021年06月20日来啦来啦
Android · Google ChromeFlyPig 博主
2021年06月20日@隔壁小胡 ,感谢!!欢迎常来看看!!
MacOS · Google Chrome