1
NerverLibis 2019-11-19 10:49:58 +08:00
全站强制 https
add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload" always; |
2
Graves OP 难道只能全局把项目所有 http 替换成 https 吗(手动狗头)
|
3
sleepm 2019-11-19 10:50:26 +08:00
前台 href="/static/css/tomorrow.css"
明白不 用相对路径 |
5
Graves OP <link href="themes/fire/css/common.css" rel="stylesheet" type="text/css" />
这样引用有问题吗 |
6
chuhemiao 2019-11-19 11:09:09 +08:00
直接目录也应该可以,如果你没有库里路径写死 要不就 ng 代理匹配下 http 路径
|
7
atom234 2019-11-19 11:10:49 +08:00 5
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
|
8
eason1874 2019-11-19 11:23:18 +08:00
@Graves #4 不难不难,程序没有模板就用 Nginx 的 sub_filter 一把梭,把绝对路径 HTTP 协议头全部替换成 HTTPS
|
9
dixeran 2019-11-19 11:25:13 +08:00 via Android
服务器 rewrite
|
10
iasuna 2019-11-19 11:42:47 +08:00
如果你要用 cloudflare rules 功能支持强制 https 如果你没用可能要手动配置了
|
11
alexsunxl 2019-11-19 11:44:18 +08:00 1
@dixeran 这种 rewrite 是不行的。
浏览器现在的策略默认你的 http 资源是没 rewrite 到 https, 直接给你报错 具体点就是说, 浏览器判断你源页面是 https 的, 但引用 http 资源,就直接报安全错误了,都没到发资源请求那一步 |
14
caola 2019-11-19 12:09:06 +08:00
这么久才想着升级 https 么?
我自己的网站早在 2014 就全站启用 https 了,当时还是用 @xoxo 的 5 年黑证书 |
15
jinliming2 2019-11-19 12:14:47 +08:00 via iPhone
必须全部改成 https:// 的,或者去掉 http: 改成 // 开头,如果是站内的地址就用相对地址。
比如 https://example.com/xxx/yyy //example.com/xxx/yyy /xxx/yyy |
16
scukmh 2019-11-19 13:07:12 +08:00
学一下全局替换,要多少事?
|
17
muskill 2019-11-19 13:48:13 +08:00
15 楼说的对.建议大家以后看见页面调站内地址写绝对地址的,拉出去揍一顿就好了,让他长长记性
|
18
yazhouli01 2019-11-19 16:30:18 +08:00
资源路径都写的绝对路径吗?编辑器都有整个项目搜索替换的功能,你可以尝试下
|
19
pmispig 2019-11-19 16:45:59 +08:00
谁写的绝对路径让谁改,很简单嘛
|
20
Love4Taylor 2019-11-19 16:51:17 +08:00
subs_filter 替换字符串啊
|
21
shylockhg 2019-11-19 17:18:40 +08:00
话说静态资源有加密的必要么。。。
|
23
Lazymio 2019-11-19 18:26:06 +08:00
|
24
duan602728596 2019-11-19 18:48:02 +08:00 via iPhone
所以说前后端分离的项目,编译时直接注入资源地址,就没这么多事了
|
26
sonicjam 2019-11-19 21:35:19 +08:00
不能写个脚本替换吗?
|
27
cydian 2019-11-20 00:11:34 +08:00 via Android
@Graves 7 楼就是正解。直接在 header 加上就可以了。http header 或者 html meta 都有这个。 会直接把页面请求的 http 全部转成 https。
|
28
cydian 2019-11-20 00:13:02 +08:00 via Android
@Graves 7 楼那个方法 不需要你去替换 http 开头的连接。原本写死的链接用那个方法都会自动处理成 https
注意,有该 header 的页面,所有资源都会走 https,无论内站还是外站域名,引用了就自动 https |
29
cydian 2019-11-20 00:14:50 +08:00 via Android
|
30
popvlovs 2019-11-20 11:50:05 +08:00
nginx 配置 http 301 到 https 也可以吧,这样也不用改前端代码
server { listen 80 default_server; location / { return 301 https://$host$request_uri; } } |
31
Graves OP @popvlovs 不行的,首页是 https 但是页面引用的 http 资源,浏览器浏览器就报错,请求都发不出去
|
32
popvlovs 2019-11-20 17:45:43 +08:00
哦对的,https 里引 http 不符合浏览器安全策略
|