最近发现一个网址的SSL证书失效了,有点奇怪啊,因为一直用的宝塔面板申请的Let's Encrypt免费SSL证书,到期之后宝塔面板会自动续签的,为什么会失效呢?试着手动续签了一些,结果手动续签SSL证书也失败了。一般证书续签失败的原因可能是因为域名做了301跳转,但是在取消301跳转后依然续签失败,看来还有别的原因,想了好久才想到是不是因为前端时间在伪静态中添加了一些提升Nginx安全性的代码中有与Let's Encrypt续签有冲突的呢?于是把那些代码暂时删掉,果然续签SSL证书成功了,看来问题就出在这里。
下面是有冲突的那段代码,具体是哪一行我没有确定,先把整段贴出来吧,如果有遇到同样问题的站长可以照此办理:
#防止SQL注入 if ($query_string ~* "[;'<>].*") { return 444; } if ($request_uri ~ " ") { return 444; } if ($request_uri ~ (\/\.+)) { return 444; } if ($request_uri ~ (\.+\/)) { return 444; } if ($uri ~* (insert|select|delete|count|master|truncate|declare|exec|\*|\')(.*)$ ) { return 444; } #防止SQL注入 if ($request_uri ~* "(cost\()|(concat\()") { return 444; } if ($request_uri ~* "[+|(%20)]union[+|(%20)]") { return 444; } if ($request_uri ~* "[+|(%20)]and[+|(%20)]") { return 444; } if ($request_uri ~* "[+|(%20)]select[+|(%20)]") { return 444; } if ($request_uri ~* "[+|(%20)]or[+|(%20)]") { return 444; } if ($request_uri ~* "[+|(%20)]delete[+|(%20)]") { return 444; } if ($request_uri ~* "[+|(%20)]update[+|(%20)]") { return 444; } if ($request_uri ~* "[+|(%20)]insert[+|(%20)]") { return 444; } if ($query_string ~ "(<|%3C).*script.*(>|%3E)") { return 444; } if ($query_string ~ "GLOBALS(=|\[|\%[0-9A-Z]{0,2})") { return 444; } if ($query_string ~ "_REQUEST(=|\[|\%[0-9A-Z]{0,2})") { return 444; } if ($query_string ~ "proc/self/environ") { return 505; } if ($query_string ~ "mosConfig_[a-zA-Z_]{1,21}(=|\%3D)") { return 444; } if ($query_string ~ "base64_(en|de)code\(.*\)") { return 444; } if ($query_string ~ "[a-zA-Z0-9_]=http://") { return 444; } if ($query_string ~ "[a-zA-Z0-9_]=(\.\.//?)+") { return 444; } if ($query_string ~ "[a-zA-Z0-9_]=/([a-z0-9_.]//?)+") { return 444; } if ($query_string ~ "b(ultram|unicauca|valium|viagra|vicodin|xanax|ypxaieo)b") { return 444; } if ($query_string ~ "b(erections|hoodia|huronriveracres|impotence|levitra|libido)b") {return 444; } if ($query_string ~ "b(ambien|bluespill|cialis|cocaine|ejaculation|erectile)b") { return 444; } if ($query_string ~ "b(lipitor|phentermin|pro[sz]ac|sandyauer|tramadol|troyhamby)b") { return 444; }