質問編集履歴

2

内容の追記

2020/04/08 00:14

投稿

Haruto513
Haruto513

スコア52

test CHANGED
File without changes
test CHANGED
@@ -129,3 +129,17 @@
129
129
  ```
130
130
 
131
131
  コードの意味もほとんどよく分かっていないまま書いているのでもう少し調べていきたいと思います。
132
+
133
+
134
+
135
+ ### 4月8日現在の状況
136
+
137
+
138
+
139
+ 現在、問題の原因としてSSL証明書自体に問題があるというような話が出ています。
140
+
141
+ [https://kaede.jp/2018/06/10191854.html](https://kaede.jp/2018/06/10191854.html)
142
+
143
+ 上記の記事に書いてある「subjectAltName」が入っていない?のが原因なのではないかという話です。
144
+
145
+ 再度SSL証明書を作成して、成功したらまた自己解決として書きます。

1

内容の追記

2020/04/08 00:14

投稿

Haruto513
Haruto513

スコア52

test CHANGED
File without changes
test CHANGED
@@ -51,3 +51,81 @@
51
51
  どなたかアドバイスしてくださると助かります。
52
52
 
53
53
  宜しくお願い致します。
54
+
55
+
56
+
57
+ ### 現時点まででやってみたこと
58
+
59
+ 一先ずアセットに証明書ファイル**ca.der**を置いて、以下のようにコードを書いてみました。
60
+
61
+
62
+
63
+ ```Kotlin
64
+
65
+ val cf: CertificateFactory = CertificateFactory.getInstance("X.509")
66
+
67
+ val file = context.assets.open("cacert.der")
68
+
69
+ val ca = cf.generateCertificate(file) as X509Certificate
70
+
71
+
72
+
73
+ val keyStoreType = KeyStore.getDefaultType()
74
+
75
+ val keyStore = KeyStore.getInstance(keyStoreType).apply {
76
+
77
+ load(null, null)
78
+
79
+ setCertificateEntry("ca", ca)
80
+
81
+ }
82
+
83
+
84
+
85
+ val tmfAlgorithm = TrustManagerFactory.getDefaultAlgorithm()
86
+
87
+ val tmf = TrustManagerFactory.getInstance(tmfAlgorithm).apply {
88
+
89
+ init(keyStore)
90
+
91
+ }
92
+
93
+
94
+
95
+ val context = SSLContext.getInstance("TLS").apply {
96
+
97
+ init(null, tmf.trustManagers, null)
98
+
99
+ }
100
+
101
+
102
+
103
+ try {
104
+
105
+ val con = URL("https://xxxxxxxxxxxxxxxxxxx").openConnection() as HttpsURLConnection
106
+
107
+ con.sslSocketFactory = context.socketFactory
108
+
109
+ con.requestMethod = "GET"
110
+
111
+ .
112
+
113
+ .
114
+
115
+ .
116
+
117
+ ```
118
+
119
+
120
+
121
+ しかし以前としてエラーは出てしまいます。
122
+
123
+
124
+
125
+ ```
126
+
127
+ E/Exception: javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
128
+
129
+ ```
130
+
131
+ コードの意味もほとんどよく分かっていないまま書いているのでもう少し調べていきたいと思います。