2016-10-05 4 views
0

こんにちは、私はHttpOkを使用してピン留め証明書を実装しようとしていますHttpOK使用:https://square.github.io/okhttp/3.x/okhttp/okhttp3/CertificatePinner.html証明書のピニングが

誰かが私に私が証明書のピニング例外を取得するために、次のコードを配置することを意図していますどこのアイデアを与えることはできますか?

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(); 

感謝:)

答えて

0

あなたのWebサービス呼び出しのためのクライアントを作成しているところはどこでも行くことになっています。公開鍵をサーバーの公開鍵で置き換える必要があることに注意してください。

+0

でテストすることができますが、これだけはpublicobject.com

を打つすべての既存のコールに適用する、追加のHTTP呼び出しを行う必要はありません:android.os.NetworkOnMainThreadException エラー。私が間違っていることを知っていますか? – teiiluj

+0

メインスレッドでネットワークコールを実行するはずがありません。いくつかのバックグラウンドタスクでこのコードを実行することになっています。このエラーはこのリンクで非常によく説明されています:http://stackoverflow.com/questions/6343166/how-to-fix-android-os-networkonmainthreadexception – LoveForDroid

0

現在、OkHttpClientをビルドしている場合は追加する必要があります。あなたも、この時点でコールを作っているので、既存のコードに追加する必要があります。具体的行だけが

CertificatePinner certificatePinner = new CertificatePinner.Builder() 
    .add(hostname, "sha256/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=") 
    .build(); 

...builder.certificatePinner(certificatePinner)... 

NetworkOnMainThreadExceptionはおそらくです。あなたはこれが私に与え、あなたは、Mac上にある場合は、oksocial

$ brew install yschimke/tap/oksocial 
$ oksocial --certificatePin publicobject.com:sha256/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA https://publicobject.com/robots.txt 
request failed 
javax.net.ssl.SSLPeerUnverifiedException: Certificate pinning failure! 
    Peer certificate chain: 
    sha256/afwiKY3RxoMmLkuRW1l7QsPZTJPwDS2pdDROQjXw8ig=: CN=publicobject.com, OU=PositiveSSL, OU=Domain Control Validated 
    sha256/klO23nT2ehFDXCfx3eHTDRESMz3asj1muO+4aIdjiuY=: CN=COMODO RSA Domain Validation Secure Server CA, O=COMODO CA Limited, L=Salford, ST=Greater Manchester, C=GB 
    sha256/grX4Ta9HpZx6tSHkmCrvpApTQGo67CYDnvprLg5yRME=: CN=COMODO RSA Certification Authority, O=COMODO CA Limited, L=Salford, ST=Greater Manchester, C=GB 
    Pinned certificates for publicobject.com: 
    sha256/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= 
    at okhttp3.CertificatePinner.check(CertificatePinner.java:187)