2014-11-13 2 views
4

keytool을 사용하여 키 저장소 내에서 trustedCertEntry의 만료 날짜를 연장하려고합니다. 키 스토어 나는 다음과 같은 오류가 동일한 명령으로 다른 두의 만료를 수정하려고 시도 때 성공적 형 PrivateKeyEntry를의 두 번째 항목, 로컬 호스트의 만료 날짜를 수정할 수 있지만키 저장소 내에서 trustedCertEntry의 만료 날짜를 연장합니다.

$ keytool -list -keystore certs/authTruststore.jks 
Enter keystore password: 

Keystore type: JKS 
Keystore provider: SUN 

Your keystore contains 3 entries 

sts, Nov 11, 2013, trustedCertEntry, 
Certificate fingerprint (SHA1): 8D:33:B7:69:DE:75:8F:22:E2:95:2C:EB:93:65:41:31:42:A6:E3:A7 
__ 
localhost, Nov 11, 2013, PrivateKeyEntry, 
Certificate fingerprint (SHA1): F4:A9:84:1E:7F:BF:5D:71:58:74:E4:C6:00:49:37:49:38:3E:31:BE 
__  
security_localhost, Nov 11, 2013, trustedCertEntry, 
Certificate fingerprint (SHA1): 6B:F8:E1:36:EB:36:D4:A5:6E:A0:5C:7A:E4:B9:A4:5B:63:BF:97:5D 

아래의 내용을 가지고 :

$ keytool -selfcert -v -alias security_localhost -validity 3650 -keystore certs/authTruststore.jks -storepass **** 

keytool error: java.lang.Exception: Alias <localhost> has no key 
java.lang.Exception: Alias <localhost> has no key 
    at sun.security.tools.KeyTool.recoverKey(KeyTool.java:3095) 
    at sun.security.tools.KeyTool.doSelfCert(KeyTool.java:2442) 
    at sun.security.tools.KeyTool.doCommands(KeyTool.java:1071) 
    at sun.security.tools.KeyTool.run(KeyTool.java:340) 
    at sun.security.tools.KeyTool.main(KeyTool.java:333) 

어떻게 만료 날짜를 연장 할 수 있습니까?

답변

2

이것을보십시오 link. 그것은

Generates an X.509 v1 self-signed certificate, using keystore information including 
the private key and public key associated with alias 

그래서 당신은 키와 연관된 -selfcert를 사용하여 인증서를 업데이트 할 수 있습니다 말했다. firstthird은 신뢰할 수있는 인증서 항목이며 second 항목은 PrivateKeyEntry입니다. 이 항목의 인증서는 PrivateKey과 연결됩니다. 다른 2 명은 그렇지 않습니다.

두 인증서가 만료 된 경우 처음에는 키 스토어에 추가 한 것과 같은 방식으로 만 최신 인증서로 업데이트 할 수 있습니다. -importcert을 수행하여

참고 : -selfcert은 더 이상 사용되지 않습니다. 자세한 내용은 here을 참조하십시오.