我正在使用nginx,我最近在网站上添加了证书,我得到了一个奇怪的错误。
以下是我的access.log的一部分:
x.y.z.w - - [12/Nov/2014:15:16:09 +0100] "-" 400 0 "-" "-" Host : -
x.y.z.w - - [12/Nov/2014:15:16:09 +0100] "-" 400 0 "-" "-" Host : -
我在error.log中看不到任何内容但是当我强制error.log更精确时,我得到了:
2014/11/12 15:16:09 [info] 16027#0: *24870 client closed prematurely connection while SSL handshaking, client: x.y.z.w, server: sub.domain.com
2014/11/12 15:16:09 [info] 16027#0: *24871 client closed prematurely connection while SSL handshaking, client: x.y.z.w, server: sub.domain.com
这是我的nginx配置文件的一部分:
server
{
listen 80;
server_name sub.domain.com;
root /var/www;
rewrite ^ https://$server_name$request_uri? permanent;
}
server
{
listen 443 ssl;
server_name sub.domain.com;
root /var/www;
ssl_certificate /var/server.crt;
ssl_certificate_key /var/server.key;
...
客户端没有错误。
这是正常的吗?它来自哪里?
答案 0 :(得分:0)
这是正常的吗?它来自哪里?
它可能来自在完成握手之前关闭的客户端。如果他们在握手中获得证书,无法验证证书,因为它是自签名的或其他原因,可能就是这种情况,并且必须与用户核实是否应该继续。
答案 1 :(得分:0)
假设您使用的是nginx默认访问日志格式,这意味着握手已已完成,但客户端之后未发送任何有效请求(HTTP 400
代码 - >无效请求)。
例如,这可能是由于某些SSL扫描程序(考虑到当前上下文,这并不奇怪)。