2011-04-12 5 views
4

내가 (인터넷에서 거의 다른 사람)이 가이드
사용하여 우리의 회사는 .pfx 인증서 항아리 애플릿 아카이브에 서명하려고했다 :
http://www.globalsign.com/support/ordering-guides/SignJavaCodeAppletsPFX.pdf.pfx 파일로 Java 애플릿을 서명하는 방법은 무엇입니까?

모든 것이 잘 될 것 같다,하지만 나는 t 실행하려고 할 때 사과를 통해 브라우저를 보았습니다.
'게시자'는 UNKNOWN (신뢰할 수 없음)입니다. 세부 사항으로 가면 적절한 회사 인
이름과 인증서 공급 업체 (GlobalSign)를 볼 수 있습니다. 알려진/신뢰할 수있는 것으로 표시되지 않는 이유는 무엇입니까?

나에게 의심스러운 한 가지
의 jarsigner -verify -verbose -certs applet.jar를 명령의 출력 :

(...) 
    sm  1936 Wed Apr 13 03:00:50 CEST 2011 org/my/Applet.class 

    X.509, CN=CompanyName, O=CompanyName, L=Tilst, ST=ProperState, C=DK 
    [certificate is valid from 18.02.10 14:58 to 18.02.13 14:58] 

    s = signature was verified 
    m = entry is listed in manifest 
    k = at least one certificate was found in keystore 
    i = at least one certificate was found in identity scope 

그래서 = 적어도 하나의 인증서 k는 키 스토어에서 발견 된 '처럼 보인다 '가 누락되었습니다.
(smk이어야하며 sm입니다). 그것은 부분적으로 만 서명 되었습니까? 또는 무엇을?

GlobalSign에서 제공 한 .pfx 파일이 어떻게 든 잘못되었습니다.
애플릿에 서명하기에 충분하지 않습니까? 일반 실행 파일의 경우 정상적으로 작동했습니다 ...

아이디어가 있으십니까? 당신은 완전히 옳다 등)

편집

@Jcs

보인다. 나는 키 도구 내 PFX 파일을 확인하고 내가 얻을 : 체인이 완료되지 않은 것처럼

Your keystore contains 1 entry 

Alias name: company_alias 
Creation date: Apr 13, 2011 
Entry type: PrivateKeyEntry 
Certificate chain length: 1 
Certificate[1]: 

그래서 보인다. 나는 그것에 globalsign 루트를 추가 할 필요가 어떻게 든 내 PFX 파일이 완전히 잘못, 또는 :
나는 그것이 중요한 경우 잘 모르겠지만, 예를 들어 같은 몇 가지 확장 기능도 있습니다 :

#1: ObjectId: (some_numbers_here) Criticality=true 
KeyUsage [ 
    DigitalSignature 
] 

#2: ObjectId: (some_numbers_here) Criticality=false 
AuthorityInfoAccess [ 
    [ 
    accessMethod: (some_numbers_here) 
    accessLocation: URIName: http://secure.globalsign.net/cacert/ObjectSign.crt] 
] 
(...) 

질문입니다은?

+0

가이드를 다운로드하는 데 방해가되지 않았지만 'pfx'인증서를 만들었습니까? –

+0

.pfx는 일종의 PKCS # 12 파일입니다 (예 : .p12와 동일). 이 .pfx 파일은 다른 프로젝트 (C++)에서 제대로 작동합니다. –

+0

그건 내 질문에 대답하지 않는다. * "당신은 ** 'pfx'... 인증서를 만들었습니까?"* –

답변

0

감사 모두를위한 많은, 특히 JCS : 나는 마침내 .PFX 파일이 방금 가져온 것을 발견
로를 부적절하게.
내 상사가 모든 가능한 경로/체인/인증서가 포함 된 처음부터 나를 위해 가져 오기 위해 물어 이제는 작동합니다.
그럼 내 충고는 인증서를 가져오고 다시 가져 오는 것입니다.
- 서명 방법보다는 인증서 자체에 다소 문제가 있습니다.

2

게시물에 따르면 서명 인증서 체인에 인증서가 하나만있는 것으로 보입니다. 나는 (이 애플릿은 브라우저에서 제대로 작동)

(...) 
sm  2419 Thu Mar 31 15:49:14 CEST 2011 org/xml/sax/helpers/XMLReaderFactory.class 

     X.509, CN=Company Name, O=Company Name, L=Paris, ST=Ile de France, C=FR 
     [certificate is valid from 8/4/10 2:00 AM to 8/4/12 1:59 AM] 
     X.509, CN=Thawte Code Signing CA - G2, O="Thawte, Inc.", C=US 
     [certificate is valid from 2/8/10 1:00 AM to 2/8/20 12:59 AM] 
     [KeyUsage extension does not support code signing] 

(...) 

우리는 내 서명 인증서가 CA에 서명 Thawte에 코드 발행 되었기 때문에 체인이 인증서가있는 것을 볼 수 있습니다 내가 서명 애플릿을 확인했습니다.

출력에 jarsigner 출력에 인증서가 하나만있는 경우 중간 CA가 누락되었음을 나타낼 수 있으며 GlobalSign이 Java 신뢰 저장소에있는 루트 CA에서 직접 인증서를 발급하고 있음을 거의 의심하지 않습니다. 따라서 애플릿이로드되고 서명이 확인되면 JVM은 서명 인증서와 GlobalSign 루트 CA 사이의 인증서 체인을 다시 작성하여 현재 동작을 설명 할 수 없습니다.

아마도 PKF 파일에 해당 중간 CA가 포함되어 있지 않을 수 있습니다.OpenSSL하면 현재 얼마나 많은 인증서를 확인할 수 있습니다

[[email protected]:~/]$ openssl pkcs12 -in myfile.pfx 

또는 keytool

[[email protected]:~/]$ keytool -list -v -storetype pkcs12 -keystore myfile.pfx 
Enter keystore password: 
Keystore type: PKCS12 
Keystore provider: SunJSSE 

Your keystore contains 1 entry 

Alias name: 2 
Creation date: Aug 4, 2010 
Entry type: PrivateKeyEntry 
Certificate chain length: 2  <-- the chain length is here. 
Certificate[1]: 
(...) 
+0

맞습니다 :) 자세한 내용은 첫 번째 게시물을 편집했습니다. –

관련 문제