Android/Java 애플리케이션 용 OkHttp를 사용하여 인증서 고정을 활성화하려면 어떻게해야합니까?OkHttp로 인증서 피닝을 설정하는 방법
0
A
답변
2
OkHttp documentation은 예제 코드로이를 완벽하게 수행 할 수있는 방법을 제공합니다. 사라지면 여기에 붙여 넣습니다.
1. 깨진 내용을 추가하여 CertificatePinner
을 요청하십시오. 요청이 존재하지 않더라도 요청할 것입니다. Android 애플리케이션에서이 작업을 수행하거나 더미 Java 애플리케이션을 생성하고이를 실행할 수도 있습니다. 예를 들어
, 깨진 구성으로 시작 https://publicobject.com 핀 :
javax.net.ssl.SSLPeerUnverifiedException: Certificate pinning failure!
Peer certificate chain:
sha256/afwiKY3RxoMmLkuRW1l7QsPZTJPwDS2pdDROQjXw8ig=: CN=publicobject.com, OU=PositiveSSL
sha256/klO23nT2ehFDXCfx3eHTDRESMz3asj1muO+4aIdjiuY=: CN=COMODO RSA Secure Server CA
sha256/grX4Ta9HpZx6tSHkmCrvpApTQGo67CYDnvprLg5yRME=: CN=COMODO RSA Certification Authority
sha256/lCppFqbkrlJ3EcVFAkeip0+44VaoJUymbnOaEUk7tEU=: CN=AddTrust External CA Root
Pinned certificates for publicobject.com:
sha256/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
at okhttp3.CertificatePinner.check(CertificatePinner.java)
at okhttp3.Connection.upgradeToTls(Connection.java)
at okhttp3.Connection.connect(Connection.java)
at okhttp3.Connection.connectAndSetOwner(Connection.java)
2. 구성하십시오 OkHttp 클라이언트 :
예상대로String hostname = "publicobject.com";
CertificatePinner certificatePinner = new CertificatePinner.Builder()
.add(hostname, "sha256/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=")
.build();
OkHttpClient client = OkHttpClient.Builder()
.certificatePinner(certificatePinner)
.build();
Request request = new Request.Builder()
.url("https://" + hostname)
.build();
client.newCall(request).execute();
,이 인증서로 고정 예외를 실패 올바르게 :
CertificatePinner certificatePinner = new CertificatePinner.Builder()
.add("publicobject.com", "sha256/afwiKY3RxoMmLkuRW1l7QsPZTJPwDS2pdDROQjXw8ig=")
.add("publicobject.com", "sha256/klO23nT2ehFDXCfx3eHTDRESMz3asj1muO+4aIdjiuY=")
.add("publicobject.com", "sha256/grX4Ta9HpZx6tSHkmCrvpApTQGo67CYDnvprLg5yRME=")
.add("publicobject.com", "sha256/lCppFqbkrlJ3EcVFAkeip0+44VaoJUymbnOaEUk7tEU=")
.build();
그게 전부입니다!
이 방법은 전체 체인의 모든 인증서를 제공합니다. 이는 체인의 한 인증서 만 성공 요청과 일치해야하므로 안전합니다. 장래에 어느 시점에서 인증서가 업데이트 될 것이지만 전체 체인이 업데이트되지 않는 한 응용 프로그램이 중단되지 않아야합니다.
관련 문제
- 1. NativeScript는 인증서 피닝을 지원합니까?
- 2. Firebase는 인증서 피닝을 지원합니까?
- 3. okhttp로 로컬 테스트하는 방법
- 4. OKHttp로 데이터 캐싱
- 5. OkHttp로 서버 푸시 응답 읽기
- 6. 인증서 오류 (인증서 피닝)를 감지하는 PhoneGap 모듈
- 7. okhttp로 mjpeg 스트림을 처리하는 방법은 무엇입니까?
- 8. EC2 인증서 생성 방법
- 9. Xamarin Cross Platform 인증서 고정
- 10. Webmin 브라우저 인증서 인증을 설정하는 방법은 무엇입니까?
- 11. 인증서
- 12. 인증서 지문 비교 방법
- 13. Windows 인증서 관리 - 방법
- 14. 인증서 오류를 무시하는 방법
- 15. 인증서
- 16. 인증서
- 17. 인증서
- 18. JKS 인증서/키를 BouncyCastle 인증서/키로 변환하는 방법
- 19. Ruby Savon verify_callback을 설정하는 방법
- 20. 파일에서 인증서 유형을 결정하는 방법
- 21. X509 인증서 서명을 해독하는 방법
- 22. SSL 인증서 유효성 검사 방법
- 23. 인증서 저장소에서 인증서를 읽는 방법?
- 24. 인증서 서명 요청을 얻는 방법
- 25. 인증서 체인에서 JSK를 만드는 방법
- 26. SSL 인증서 데이터를 지우는 방법
- 27. IIS 인증서 오류를 해결하는 방법?
- 28. .NET에서 인증서 스냅인을 여는 방법
- 29. BinarySecurityToken에서 인증서 경로를 얻는 방법?
- 30. asp.net : SSL 인증서 사용 방법