質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

Q&A

解決済

2回答

5694閲覧

自己証明書を使ってhttps SSL通信

退会済みユーザー

退会済みユーザー

総合スコア0

HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

0グッド

0クリップ

投稿2019/05/14 10:02

自己証明書を使ってhttps通信をしようとしてるのですが、以下のエラーがでてうまくいきません。
どこがダメか教えていただけたら大変たすかります。

I/X509Util: Failed to validate the certificate chain, error: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.

コード

val cf = CertificateFactory.getInstance("X.509") val inputS = context?.resources?.openRawResource(R.raw.my_ca) val caInput = BufferedInputStream(inputS) val ca = cf.generateCertificate(caInput) // Create a KeyStore containing our trusted CAs val keyStoreType = KeyStore.getDefaultType() val trustedKeyStore = KeyStore.getInstance(keyStoreType) trustedKeyStore.load(null, null) trustedKeyStore.setCertificateEntry("my_ca", ca) // Create a TrustManager that trusts the CAs in our KeyStore val tmfAlgorithm = TrustManagerFactory.getDefaultAlgorithm() tmf = TrustManagerFactory.getInstance(tmfAlgorithm) tmf?.init(trustedKeyStore) // Create an SSLContext that uses our TrustManager val sslContext = SSLContext.getInstance("TLS") //"SSL" is also not working sslContext.init(null, tmf?.getTrustManagers(), null); HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.socketFactory) web_view.loadUrl(url) //urlは別で定義済み

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

Failed to validate the certificate chain
そのままかと。

自己証明書を使用したいのであれば、クライアント側でケアが必要です。

投稿2019/05/14 10:06

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/05/14 10:06

証明書は追加しております。
退会済みユーザー

退会済みユーザー

2019/05/14 10:12

何を言っているのかよく分かりませんが、エラーメッセージのとおりです。
退会済みユーザー

退会済みユーザー

2019/05/14 10:22

解決方法がわからないので教えていただけますでしょうか。
退会済みユーザー

退会済みユーザー

2019/05/14 10:26

ダメな箇所はすでに提示しました。 何を解消したいのでしょうか?
退会済みユーザー

退会済みユーザー

2019/05/14 10:27

エラーの内容から、次のアクションをどうすればよいかわからないので教えていただけますか?
退会済みユーザー

退会済みユーザー

2019/05/14 10:29

エラーメッセージのままと何度も書いているのですけど^^;
退会済みユーザー

退会済みユーザー

2019/05/14 10:31

もういいです。
退会済みユーザー

退会済みユーザー

2019/05/14 10:33

Failed to validate the certificate chain なら、どうやってそのFailを解決するかをしりたいので。
guest

0

ベストアンサー

解決しました。
原因としては、SSLアクセラレータの中間証明書の問題でした。
アクションとしては、そのあたりに問題がないか調査するでした。

投稿2019/05/17 01:52

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/05/17 23:01

certificate chain の意味が分かってなかったのか。。。 やろうとしている痕跡があったので理解していると思ってましたが、自己証明書を使用する限り、サーバ側の対応ではクライアントの validate は通りません。 クライアント側の対応が必要です。
退会済みユーザー

退会済みユーザー

2019/05/18 00:46

結局サーバー側の対応で解決したので、自己証明書の使用はやめました。
退会済みユーザー

退会済みユーザー

2019/05/18 00:49

以降コメント結構です。
退会済みユーザー

退会済みユーザー

2019/05/18 01:09

> 結局サーバー側の対応で解決したので、自己証明書の使用はやめました。 自己回答のいちばん重要なところじゃないですか。 退会前に記述があってよかったです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問