1

我想为我的 iOS 应用程序与服务器的通信生成我自己的 SSL 证书。我想,在这种情况下,自签名证书是正常使用。

我尝试使用以下命令创建证书:

openssl genrsa -aes256 -out server.key 2048
openssl req -new -key server.key -out server.csr
openssl rsa -in server.key.org -out astro.key
openssl x509 -req -days 365 -in server.csr -signkey server.key -out astro.crt

但我的应用程序不喜欢使用服务器:我有以下错误:

NSURLSession/NSURLConnection HTTP 加载失败 (kCFStreamErrorDomainSSL, -9802)

Apple ATS 技术说明中,我可以找到以下支持的密码列表:

TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA

我在密码学方面不是很好,我想,我生成了错误的密钥和证书。

有人可以告诉我,该怎么做吗?

谢谢。

4

2 回答 2

1

在 iOS 9 中,不允许使用自签名证书。你的证书应该没问题。

只需将以下内容添加到您的 Info.plist 文件中:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>yourdomain.com</key>
        <dict>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
    </dict>
</dict>
于 2015-10-21T09:36:19.360 回答
0

尝试此站点以验证您的证书是否正常 sslabs.com。这里是一个 twitter API 结果示例……您的服务器 SSL 报告应该或多或少像这样。

于 2015-09-24T16:19:09.990 回答