2019年11月

在我windows + apache2.4.38 上尝试了网上很多方法无效,最后找到一个答案就是:

apache SSL支持协议是全局设置,需要放在VirtualHost外面。

开启ocsp需要保持格式在命令上一行注释,否则可能会报错。不要问为什么,完全靠试出来的。

我的VirtualHost配置记录:


Listen 443

# 添加 SSL 协议支持协议,去掉不安全的协议
SSLProtocol All -TLSv1

#开启ocsp
SSLUseStapling on   
SSLCompression off 
#缓存位置  需要mod_socache_shmcb模块
SSLStaplingCache "shmcb:logs/stapling-cache(150000)" 
#ocsp装订正常缓存超时3600秒
SSLStaplingStandardCacheTimeout 3600    
#ocsp装订错误缓存超时600秒
SSLStaplingErrorCacheTimeout 600    

<VirtualHost *:443>
DocumentRoot "D:/blog"
ServerName blog.gamecf.cn
# SSL功能打开,如果在Virtualhost 出现这句,则仅作用于虚拟机站点配置范围,这个虚拟机站点全部使用SSL通信,如果出现在Virtualhost外,则作用于全局,整个服务器都使用 SSL(HTTPS)通信,不能采用HTTP通信,所以通常都在Virtualhost中加这句。
SSLEngine on
# 修改加密套件
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
SSLHonorCipherOrder on
# 证书公钥配置
SSLCertificateFile D:/gamecf.cn.crt
# 证书私钥配置
SSLCertificateKeyFile D:/gamecf.cn.key
# 开启HTTP/2.0
Protocols h2 http/1.1
# 支持HTTP严格传输安全(HSTS)
Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"
# 支持HPKP
Header set Public-Key-Pins "pin-sha256=\"klO23nT2ehFDXCfx3eHTDRESMz3asj1muO+4aIdjiuY=\"; pin-sha256=\"633lt352PKRXbOwf4xSEa1M517scpD3l5f79xMD9r9Q=\"; max-age=2592000; includeSubDomains"
<Directory "/">
    Require all granted 
    AllowOverride All
    Options Indexes FollowSymLinks ExecCGI
    Require host ip
</Directory>
</VirtualHost>

相关文章:
https://codeday.me/bug/20181107/358027.html

默认模板的 header.php 的 css 中,有一个存放在 upaiyun 上面的,可是现在已经 405 啦。

具体 css 为 normalize.min.css

路径 typecho/usr/themes/default/header.php

链接 cdnjscn.b0.upaiyun.com/libs/normalize/2.1.3/normalize.min.css

解决:https://cdn.baomitu.com/normalize (重新获取链接或下载到本地)

normalize与CSS Reset的区别:
Normalize.css只是一个很小的css文件,但它在磨人的HTML元素样式上提供了跨浏览器的高度一致性。相比于传统的CSS
reset,Normalize.css是一种现代的、为HTML5准备的优质替代方案。总之,Normalize.css是一种CSS
reset的替代方案。

Normalize.css 有下面这几个目的:

  • 保护有用的浏览器 样式而不是去掉他们。
  • 一般化的样式: 为大部分HTML元素提供。
  • 修复浏览器自身的bug 并保证各浏览器的一致性。
  • 优化css可用性: 用一些小技巧。
  • 解释代码: 用注释和详细的文档来。

注意: Normalize支持包括手机浏览器在内的超多浏览器,同时对HTML5元素、排版、列表、嵌入的内容、表单和表哥都进行了一般化。尽管这个项目基于一般化的原则,但我们还是在合适的地方使用了更实用的默认值。

另外还有这个判断旧版本浏览器的js链接也失效了

<!--[if lt IE 9]>
<script src="//cdnjscn.b0.upaiyun.com/libs/html5shiv/r29/html5.min.js"></script>
<script src="//cdnjscn.b0.upaiyun.com/libs/respond.js/1.3.0/respond.min.js"></script>
<![endif]-->

到cdnjs.com搜索后替换为:

<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->

相关查阅:
https://www.v2ex.com/t/434558
https://www.jianshu.com/p/6e0c6d570e1c

FreeSSL.cn 是一个免费提供 HTTPS 证书申请、HTTPS 证书管理和 HTTPS 证书到期提醒服务的网站,旨在推进 HTTPS 证书的普及与应用,简化证书申请的流程。

支持 Let's Encrypt V2 乏域名证书。

需要下载windows客户端软件KeyManager。

KeyManager,可以提供安全便捷的 SSL 证书申请和管理。

如题,typecho伪静态.htaccess规则,备用。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
</IfModule>

http跳转https的.htaccess规则

<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteBase /
 RewriteCond %{SERVER_PORT} 80
 RewriteRule ^(.*)$ https://blog.gamecf.cn/$1 [R=301,L]
</IfModule>