2016-11-02 2 views
0

나는 별다른 문제에 직면하지 않았다. (어떤 행동도없이 해결된다. :-)) 어떤 일이 일어 났는지를 알고 있는지 알고 싶었다.시간대 변경이 SSL 핸드 셰이크에 영향을 줍니까?

배경 :

그래서 내 테스트 서버가 지원하는 은행의 목록을 얻을 수있는 REST URL을 사용하여 지불 게이트웨이 (제 3 자)에 연결하는 논리를 가지고있다. 그것의 백그라운드 연결 & 상수 서비스 URL 이후로, 나는 (http : //www.httc.com) 같은 http 클라이언트에 dummy truststore를 사용했다. (this 같은 것). 내 응용 프로그램은 UTC 시간대가있는 서버에서 실행됩니다.

문제점 :이는 10 월 31 일부터 시작하는 방법이다

2016 EOD 2016년 11월 1일 EOD에 -에서 HTTPS REST URL 액세스 한 적이 whne 그것은 "javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated"예외가 발생합니다. Java 버전은 open-jdk-1.7.0.09 & 같은 구성으로 다른 서버에서 시도했지만 상황은 같았습니다. 한 서버에서 java를 1.7.0.101로 업데이트했을 때 작동하기 시작했습니다. 나는 &에 Nov 2, 2016에 오늘 cehck에 문제를 맡겼다. jvm을 다시 시작하면 모든 것이 잘 동작한다. 인증서 유효성 검사/연결에는 문제가 없습니다. 한 가지 이상한 사실은 UTC에서 America/Los Angeles으로 변경된 자바 기본 시간대입니다. 또한 일광 절약 시간이 true로 설정되었습니다 (Ok 10 월 종료).

질문 :

는 SSL 핸드 셰이크와 시간대에 대한 모든 연결이 있습니까? 나는 환경/코드에서 다른 변화가 보이지 않는다. 아무도 이것에 대해 뭔가를 알고 있습니까? 이것이 질문 표준 위반이 아니기를 바랍니다 :-)

답변

2

올바르게 쓰여진 TLS 스택에서는 현재 시간대가 중요하지 않습니다. 인증서의 만료 시간은 UTC와 함께 저장되므로 시간대와는 관련이 없습니다. 따라서 비교 시간은 UTC에도 있어야합니다. 그리고 적절한 OS에서 현지 시간은 Windows가 여기에서 예외일지도 모르지만 내부적으로 UTC에도 저장됩니다. 따라서 모든 UTC를 사용하면 시간대가 변경되지 않습니다. 물론 누군가가 시간대에 따라 기능을 사용하여이 멋진 이론을 엉망으로 만든 것일 수도 있습니다.

+0

Windows 예외는 없습니다. 내부적으로 시스템 시간은 실제로 UTC입니다. 현지 시간으로 유지되는 것은 BIOS 시계 뿐이므로이 질문과 관련이 없습니다. SSL/TLS가 UTC에만 의존한다는 것이 맞습니다. –

관련 문제