https 서버 hello가 누락되었습니다.

https 서버 hello가 누락되었습니다.

서버 를 설정 nginx하고 https 인증서로 구성했습니다. 하지만 다음을 통해 내 서버에 액세스할 수 없습니다.https 가끔. 드문 경우지만 잘 작동하지만서버 없음 안녕하세요대부분의 상황에서. wireshark다음과 같이 를 사용하십시오 .

Wireshark에서 캡처한 결과

편집하다, 다음은 내 것입니다nginx conf

server {
    listen       443 http2 ssl;
    server_name  n1.chengjie.me;
    root        /opt/app/html.n1.chengjie.me;
    index       index.html;
    charset     utf-8;

    access_log  logs/access.n1.chengjie.me.log  main;
    error_log  logs/error.n1.chengjie.me.log;

    ssl on;
    ssl_certificate /etc/letsencrypt/live/chengjie.me/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/chengjie.me/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/chengjie.me/chain.pem;
    gzip            on;
    gzip_min_length 1000;
    gzip_proxied    expired no-cache no-store private auth;
    gzip_types      text/plain application/xml application/javascript text/css;

    location / {
            try_files $uri $uri/ /index.html;
    }

    location ~ .*\.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm)$
    {
            expires      7d;
    }

    location ~ .*\.(?:js|css)$
    {
            expires      7d;
    }

}

편집 2내 Mac에 몇 가지 테스트 결과를 추가합니다.

curl -kv "https://n1.chengjie.me/"결과는 다음과 같습니다.

컬 오류 메시지

openssl s_client -connect n1.chengjie.me:443결과는 다음과 같습니다.

openssl-1

openssl-2

openssl-3

편집하다서버 tcpdump를 추가합니다.tcpdump -i eth0 '( (tcp) and (dst port ! 22) and (port 443))'

클라이언트 Wireshark mss 값

서버 tcpdump mss 값

값이 변경 되고 MSS클라이언트는 SYN수신 MSS 1460하지만 서버는 수신 MSS 1300하고 서버는 SYN수신 MSS 1460하지만 클라이언트는 수신합니다 MSS 1300. 서버가 클라이언트의 정보를 받은 후두번째 ACK, 서버가 클라이언트에 ??를 보낸 FIN이유를 이해할 수 없습니다 FIN.

관련 정보