サードパーティのフレームワークと SSL を使用する iOS アプリを開発しています。
サーバーに接続するには、サーバー証明書、クライアント証明書、およびパスフレーズを渡す必要があります。
[HostConfiguration hostConfigurationWithAddress:@"demo.server...."
port:743
securedWithSSL:YES
serverCertPath:[[NSBundle mainBundle] pathForResource:@"SERVER-CERT" ofType:@"der"]
clientCertChainPath:[[NSBundle mainBundle] pathForResource:@"CLIENT-CERT" ofType:@"p12"]
chainPassphrase:@"ABCDEFG"];
それで、私は彼らのサポートに接続するための証明書を要求し、彼らは私にzipファイルを送ってくれました(私はMacを使用しています):
- chain_2016.pem (mac は「ルート」として識別)
- パスフレーズ
- yourCertificate.pem (「標準」)
- yourCertificate.p12 (「個人」)
パスフレーズ ファイルには 2 つの文字列が含まれています。p12 ファイルのパスフレーズと、その目的がわからない 32 文字の長さの文字列です。次のようになります: 53CFE0E1914EF853E148F29C0A56B716
p12 ファイルとパスフレーズが正しいことはわかっていますが、混乱しているのは、DER でエンコードされた証明書が 1 つしか必要ない 2 つの PEM ファイルです。を使用して各PEMをDERに変換しようとしましたが、うまくいき
openssl x509 -in ...
ませんでした...
chain_2016
との両方の内容を印刷して、それに加えて 2 つの追加の証明書が含まれyourCertificate.pem
ていることに気付きました。yourCertificate.pem
chain_2016
chain_2016.pem
cat chain_2016.pem
-----BEGIN CERTIFICATE-----
MIIERTCCAy2gAwIBAgIINQskOyELGawwDQYJKoZIhvcNAQEFBQAwga8xHjAcBgkq
[...]
VPEpWKH17rzBvmktsDjqo1Zch8xiWSzP0DnJJw13Zn/cPwBJkHY0LPA=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFSzCCBDOgAwIBAgIIPuhYaSjrBR8wDQYJKoZIhvcNAQEFBQAwga8xHjAcBgkq
[...]
ZeitvrwyCtzVo7NWb+Zf
-----END CERTIFICATE-----
あなたの証明書.pem
cat yourCertificate.pem
Bag Attributes
localKeyID: 2E EC 57 1C 31 82 6D 82 68 59 86 93 FB FA 65 16 58 85 21 22
friendlyName: myApp.test.client
Key Attributes: <No Attributes>
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCu9UVuZyLsOc5u
[...]
zoQQfIreqU9KN4nhmZLKR0zY
-----END PRIVATE KEY-----
Bag Attributes
localKeyID: 2E EC 57 1C 31 82 6D 82 68 59 86 93 FB FA 65 16 58 85 21 22
friendlyName: myApp.test.client
...Here some other info like subject/email etc...
-----BEGIN CERTIFICATE-----
MIIHljCCBX6gAwIBAgIIETxy2amJI0cwDQYJKoZIhvcNAQENBQAwgbUxHjAcBgkq
[...]
hdAq5P+vcHfD8cGOdI61yJB2PgJg67lWviU=
-----END CERTIFICATE-----
Bag Attributes
friendlyName: CompanyName Meta ROOT CA TEST
...Again some other info like subject/email etc...
-----BEGIN CERTIFICATE-----
MIIERTCCAy2gAwIBAgIINQskOyELGawwDQYJKoZIhvcNAQEFBQAwga8xHjAcBgkq
[This is the same as one of the certificates in chain_2016]
VPEpWKH17rzBvmktsDjqo1Zch8xiWSzP0DnJJw13Zn/cPwBJkHY0LPA=
-----END CERTIFICATE-----
Bag Attributes
friendlyName: CompanyName SUB TEST ROOT CA 1
...Again some other info like subject/email etc...
-----BEGIN CERTIFICATE-----
MIIFSzCCBDOgAwIBAgIIPuhYaSjrBR8wDQYJKoZIhvcNAQEFBQAwga8xHjAcBgkq
[Second certificate in chain_2016]
ZeitvrwyCtzVo7NWb+Zf
-----END CERTIFICATE-----
SSL を扱うのはこれが初めてなので、誰かが私を助けてくれることを願っています。ありがとう !
更新:
私が言ったように、ペドロフに感謝します、私はすでに試しました:
を使用して各PEMをDERに変換しようとしましたが、うまくいき
openssl x509 -in ...
ませんでした...
このフレームワークを使用するには、2 つの手順があります。まず、サーバーへの接続を確立してから、アクションを実行します。変換された DER ファイルのいずれかを使用すると接続できますが、アクション (ログインなど) を実行しようとすると、「このアクションは許可されていません」というメッセージが表示されます。これは、証明書に問題がなく、SSL とは関係のない別の場所からエラーが発生したことを意味しますか?