这是什么在error_log? 请求中的方法无效\ x16 \ x03 \ x01

Invalid method in request \x16\x03\x01 on error_log file发现这一行Invalid method in request \x16\x03\x01 on error_log file ,以及其他一些类似的行:

 [Wed Oct 27 23:16:37 2010] [error] [client 187.117.240.164] Invalid URI in request x\xb2\xa1:SMl\xcc{\xfd"\xd1\x91\x84!d\x0e~\xf6:\xfbVu\xdf\xc3\xdb[\xa9\xfe\xd3lpz\x92\xbf\x9f5\xa3\xbbvF\xbc\xee\x1a\xb1\xb0\xf8K\xecE\xbc\xe8r\xacx=\xc7>\xb5\xbd\xa3\xda\xe9\xf09\x95"fd\x1c\x05\x1c\xd5\xf3#:\x91\xe6WE\xdb\xadN;k14;\xdcr\xad\x9e\xa8\xde\x95\xc3\xebw\xa0\xb1N\x8c~\xf1\xcfSY\xd5zX\xd7\x0f\vH\xe4\xb5(\xcf,3\xc98\x19\xefYq@\xd2I\x96\xfb\xc7\xa9\xae._{S\xd1\x9c\xad\x17\xdci\x9b\xca\x93\xafSM\xb8\x99\xd9|\xc2\xd8\xc9\xe7\xe9O\x99\xad\x19\xc3V]\xcc\xddR\xf7$\xaa\xb8\x18\xe0f\xb8\xff 

在第一个错误发生后的几秒钟内,Apache做了一次优雅的重启。

关于第一个错误,可能是您的networking服务器错误地尝试将未encryption的HTTP发送到端口443(HTTPS)中发出的请求。

要testing这个,在你的web服务器的主机名或IP地址上telnet到端口443,并发出: GET / HTTP/1.0 。 假设你的IP地址是10.0.0.1,你使用的是Windows,而且你已经安装了Windows telnet客户端(这很吸引人,顺便说一句 – 我更喜欢SecureCRT或免费的PuTTY ),请在命令提示符窗口中input以下内容并按下Enter键:

 telnet 10.0.0.1 443 

当连接build立时(你应该看到一个闪烁的光标的空白屏幕),input:

 GET / HTTP/1.0 

…并按Enter键两次。

快速提示:即使您的键盘input仍然会发送到服务器,您将无法看到在telnet会话build立之后键入的内容。 在Windows远程login客户端中,名为“localecho”的设置可控制此行为,但默认情况下已closures。

快速注释#2:退格“不起作用” ,所以要小心不要打字错误,否则你需要从头开始。

如果您收到明文,可读的HTML,您的虚拟主机configuration可能有问题。

我不确定第二个错误,即使是上述情况,也不应该导致Apache正常重启。

从做一个小小的研究,Apache 2.2.21及以下的版本是脆弱的,当返回错误400。

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-0053

如果还没有更新你的apache到2.2.22或更高。

固定我的错误

代替

 server { listen 443; 

使用以下命令来告诉服务器你正在使用443实际收听ssl / https请求。

 server { listen *:443 default_server ssl;