일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Linux
- python
- 안드로이드
- 블로그
- arm
- 해외직구
- ubuntu
- 단통법
- 손민한
- Tizen
- 프로야구
- NC다이노스
- 데이터베이스
- 애플
- 야구
- 타이젠
- mysql
- 김경문
- 리뷰
- Git
- 문파문파
- 태그를 입력해 주세요.
- NC 다이노스
- 인공지능
- 조세피난처
- 우분투
- 뉴스타파
- 문파문파 공략
- ubuntu 12.04
- 국정원
- Today
- Total
꿈꾸는 사람.
[Spring][Spring Tool Suite 4.0.1][SSL] certification error 본문
[Spring][Spring Tool Suite 4.0.1][SSL] certification error
현무랑 니니 2019. 1. 3. 17:351. download source
curl -O https://gist.githubusercontent.com/lesstif/cd26f57b7cfd2cd55241b20e05b5cd93/raw/InstallCert.java |
curl이 설치 되지 않은 경우 [https://gist.githubusercontent.com/lesstif/cd26f57b7cfd2cd55241b20e05b5cd93/raw/InstallCert.java]를 브라우저 주소창에 붙여 넣으면 파일이 브라우저에 표시된다. 이것을 인증서 파일로 저장하면 된다.
2. compiling
D:\SSL>javac InstallCert.java |
받은 인증서 파일을 컴파일한다.
3. Run
D:\SSL>java -cp . InstallCert start.spring.io Loading KeyStore C:\Java\jdk1.8.0_181\jre\lib\security\cacerts... Opening connection to start.spring.io:443... Starting SSL handshake... javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderExce ption: unable to find valid certification path to requested target at sun.security.ssl.Alerts.getSSLException(Alerts.java:192) at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1964) at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:328) at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:322) at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1614) at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216) at sun.security.ssl.Handshaker.processLoop(Handshaker.java:1052) at sun.security.ssl.Handshaker.process_record(Handshaker.java:987) at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1072) at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1385) at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1413) at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1397) at InstallCert.main(InstallCert.java:116) Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find vali d certification path to requested target at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:397) at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:302) at sun.security.validator.Validator.validate(Validator.java:262) at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324) at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:229) at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:105) at InstallCert$SavingTrustManager.checkServerTrusted(InstallCert.java:196) at sun.security.ssl.AbstractTrustManagerWrapper.checkServerTrusted(SSLContextImpl.java:992) at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1596) ... 8 more Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141) at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126) at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280) at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:392) ... 16 more Server sent 2 certificate(s): 1 Subject CN=*.spring.io, O="Pivotal Software, Inc.", L=Palo Alto, ST=California, C=US Issuer CN=ePrism SSL, O=SOOSAN INT, C=KR sha1 de 15 9c 35 fa 96 56 d0 2d 71 7c 5c c1 06 f4 70 90 4a 13 a6 md5 f9 fa f2 87 59 b1 a2 34 44 de 61 11 ab 23 59 2a 2 Subject CN=ePrism SSL, O=SOOSAN INT, C=KR Issuer CN=ePrism SSL, O=SOOSAN INT, C=KR sha1 a1 c7 0e 1c 49 56 1d 88 be 71 3a 77 2c 54 8d d6 50 0d 57 94 md5 ed dd 6e 4a 18 64 2d dc 08 2b d5 1c 97 7a af e6 Enter certificate to add to trusted keystore or 'q' to quit: [1] 1 |
스프링 서버에서 2 개의 인증서를 받았고 1번째가 spring.io 의 CA 인증서이므로 1번을 선택한다.
4. save peer's ssl cert to keystore(name is jssecacerts)
인증서를 [jssecacerts]란 이름으로 저장한다. 단, [start.spring.io-1]란 별명을 사용한다.
Enter certificate to add to trusted keystore or 'q' to quit: [1] 1 [ [ Version: V3 Subject: CN=*.spring.io, O="Pivotal Software, Inc.", L=Palo Alto, ST=California, C=US Signature Algorithm: SHA256withRSA, OID = 1.2.840.113549.1.1.11 Key: Sun RSA public key, 2048 bits modulus: 263928970859943711285259256378426809142774897970370798626231535931942 38409073420033337820853213259936319431187077471026904751218700716775956553485192 63072794448503569641979890019214335188526706469916615801983695268526795895064236 14805069166416213890309753799058797374360512087490392551396596314265486098345112 38346487589237003244049673314353732442844181854549313881496966524091353845684506 73898243478121546411604265519058763178644025910262715604953927793133685768856468 44984536178621124815426706758929747487124884842208121915196897650268954700930607 18749031845472475169138484159625692131931553495875361777968191547673 public exponent: 65537 Validity: [From: Fri Mar 16 09:00:00 KST 2018, To: Thu Mar 21 21:00:00 KST 2019] Issuer: CN=ePrism SSL, O=SOOSAN INT, C=KR SerialNumber: [ -bcd88202 a76ed4b7 3de08797 8dd28d27] Certificate Extensions: 1 [1]: ObjectId: 2.5.29.17 Criticality=false SubjectAlternativeName [ DNSName: *.spring.io DNSName: spring.io ] ] Algorithm: [SHA256withRSA] Signature: 0000: 9F E1 E1 C1 5D D9 AC C1 D4 24 15 4C 2D 81 45 10 ....]....$.L-.E. 0010: 0E 08 7C 37 CD 82 80 CE EC D6 08 32 03 B3 D4 71 ...7.......2...q 0020: E0 B3 20 9B 2D 6B CC ED E6 D1 0E AB 86 03 7F B1 .. .-k.......... 0030: 0B 74 F2 DE 57 B4 17 63 67 E2 35 7D E0 23 61 20 .t..W..cg.5..#a 0040: 28 61 FE 6B 58 BA 6E 84 05 3D FD 12 8D 7F 17 94 (a.kX.n..=...... 0050: 48 DE C6 9E 1A A7 7E F5 F5 9F 91 20 78 BF 9C BE H.......... x... 0060: 36 C0 5A A7 32 87 3B 91 3C D3 A3 21 A6 7A 2E 52 6.Z.2.;.<..!.z.R 0070: 53 6A D8 15 44 98 48 37 2D 36 C4 A0 A6 89 B6 F4 Sj..D.H7-6...... 0080: 1C A1 38 F8 FD C8 4F 09 20 13 CE DA 21 2A A5 A7 ..8...O. ...!*.. 0090: 95 80 28 35 EF 82 5A 82 07 B5 CD 76 F9 59 82 B1 ..(5..Z....v.Y.. 00A0: E2 7F B2 66 BB 52 86 A6 11 B8 F7 37 81 21 13 A7 ...f.R.....7.!.. 00B0: 0C DD 5B 0D C0 E4 0C 52 F1 C6 5A 30 90 1E EC F0 ..[....R..Z0.... 00C0: DE CB 64 34 65 57 0E B1 8C 86 73 84 67 48 63 72 ..d4eW....s.gHcr 00D0: D4 59 ED FB 5D 37 CB DE 59 6C D0 93 80 4A 86 76 .Y..]7..Yl...J.v 00E0: 0D 15 9A 59 98 90 48 5C 69 4D 04 59 20 F7 86 F0 ...Y..H\iM.Y ... 00F0: 5D 3A CE EE A2 AF D8 56 00 FA 13 3C A8 1F 71 9D ]:.....V...<..q. ] Added certificate to keystore 'jssecacerts' using alias 'start.spring.io-1' D:\SSL> |
5. extract cert from saved keystore
D:\SSL>keytool -exportcert -keystore jssecacerts -storepass changeit -file output.cert -alias start.spring.io-1 인증서가 <output.cert> 파일에 저장되었습니다. |
6. import cert into JDK's keystore
D:\SSL>keytool -importcert -keystore c:/Java/jdk1.8.0_181/jre/lib/securi ty/cacerts -storepass changeit -file output.cert -alias letsencrypt 소유자: CN=*.spring.io, O="Pivotal Software, Inc.", L=Palo Alto, ST=California, C=US 발행자: CN=ePrism SSL, O=SOOSAN INT, C=KR 일련 번호: -bcd88202a76ed4b73de087978dd28d27 적합한 시작 날짜: Fri Mar 16 09:00:00 KST 2018 종료 날짜: Thu Mar 21 21:00:00 KS T 2019 인증서 지문: MD5: F9:FA:F2:87:59:B1:A2:34:44:DE:61:11:AB:23:59:2A SHA1: DE:15:9C:35:FA:96:56:D0:2D:71:7C:5C:C1:06:F4:70:90:4A:13:A6 SHA256: 45:C4:CC:B6:8F:75:81:AB:F0:CB:E2:83:60:54:BD:50:C1:AA:FF:DD:13: D9:14:43:48:69:CC:69:20:DE:B5:06 서명 알고리즘 이름: SHA256withRSA 주체 공용 키 알고리즘: 2048비트 RSA 키 버전: 3 확장: #1: ObjectId: 2.5.29.17 Criticality=false SubjectAlternativeName [ DNSName: *.spring.io DNSName: spring.io ] 이 인증서를 신뢰합니까? [아니오]: 예 인증서가 키 저장소에 추가되었습니다. |
[start.spring.io]서버의 인증서를 추가한 후에는 스프링 4.0.1에서 정상적으로 프로젝트를 생성할 수 있다.
'IT > Web Development' 카테고리의 다른 글
IntelliJ IDEA에서 Git 저장소의 소스를 가져와 프로젝트를 생성하는 방법 (0) | 2024.12.16 |
---|---|
초보 개발자를 위한 웹 팝업 가이드: 레이어 팝업 생성하기 (0) | 2023.03.29 |
node.js 설치와 서버 객체 생성 및 테스트 (0) | 2021.08.10 |