2013-05-07 3 views
2

하루 종일 풀려고했는데 문제가 발생했지만 재구성 할 수 없었습니다. 나는 CertificateNotYetValidException 예외가 발생하는 문제가 있습니다 그래서새로 생성 된 java.security.cert.X509Certificate에 java.security.cert.CertificateNotYetValidException이 발생했습니다.

java.security.cert.CertificateNotYetValidException: certificate not valid till 20130502110036GMT+00:00 

를, 그것은 2013 년까지 05 02 11 유효하지 않습니다 : 00.3600 그러나 그들은 그것을 확인하기 위해 시도하고, 다음 로그의 타임 스탬프는 다음과 같습니다 2013-05 -02 11 : 00 : 34,759 그래서 그들은 그것이 유효하기 전에 0.013 초를 확인하려고 시도했지만 어떻게 가능합니까? 나는 수천 개의 인증 (인증서가 있음)을 작성하고 즉시 현재 날짜를 기록한 단위 테스트를 작성했습니다.이 테스트는 백분의 1 초로 반올림되므로 오류를 재현 할 수 없습니다.

인증서는 bouncycastle 인증서 생성 프로그램에서 생성됩니다. 나는

INFO [] ----current date: 2013-05-07 12:03:13.116 
    INFO [] not valid before: 2013-05-07 12:03:12.000 

So, if i could of reproduced the issue, i would get something like this: 

    INFO [] ----current date: 2013-05-07 12:03:13.116 
    INFO [] not valid before: 2013-05-07 12:03:14.000 

We use java.security.cert.X509Certificate 

내가 문제를 재현하는 방법을 발견, 그러나 이것은 매우 억지입니다 :

xa = (Authentication) a; 
log.info("----current date: " + sdf.format(new Date())); 
log.info("not valid before: " + sdf.format(xa.getCertificate().getNotBefore())); 

그리고 예를 들어 출력 : 여기

내 JUnit 테스트에서 샘플입니다 정말로 그들이 테스트에서 이것을하지 않았 으면 좋겠다.

기본적으로 나는 earlie에 checkValidity()를 호출했다. r Date, 그리고 이렇게하면 스택 트레이스가 아주 비슷해집니다 (내 단위 테스트를 사용했기 때문에 동일하지 않습니다). 하지만 나는 그들이 이런 식으로 아무 짓도하지 않았다고 생각합니다 ... 다른 생각은 어떻게이 오류를 얻을 수 있습니까?

+0

테스트가 수행되는 동일한 시스템에서 인증서가 생성됩니까? – mikey

+0

cert가 생성되고 같은 메소드에서 바로 뒤에 verify()가 호출됩니다. 그렇기 때문에 모두 동일한 기계에서 실행됩니다. 이 문제는 지금 당장은 밀려 났지만 일단 해결되면 게시 할 것입니다. (Sry, 늦은 대답을 위해, 나는 작은 1 줄 주석을 알지 못했고, 나는 새로운 것 같습니다 :)) – Revolit

+0

글쎄, 문제는 "재현 불가능"으로 마감되었습니다. – Revolit

답변

0

내가 말했듯이, 그것은 "재현 할 수 없음"으로 폐쇄되었습니다.

아주 이상한 오류입니다. 어떻게이 예외를 던지게했는지 알 수 없습니다. 그들은 이전 날짜에 checkValidity()를 호출하지 않았고 시스템에서 제공 한 사용 된 날짜 만 호출했습니다. 나는 그것이 그 미스테리 자바 오류 중 하나라고 생각한다. :) 지금까지 언급하지 않은 다른 오류에 대해서는이 문제가 없었으며 문제가 끝난 지 한 달이 지났다.

어쨌든이 질문에 답하고 싶었 기 때문에 답이 나오지 않았습니다. 나는 그것이 문제가 아니기를 바랍니다.

+0

당신은 어느 표준 시간대에 있습니까? 인증 시간은 UTC 시간이어야합니다. – Bruno

관련 문제