如何使用未知CA自签名的证书让Alamofire执行HTTPS请求?

Brandex07

我有一个使用自签名证书的Web服务器,并且已基于其证书创建了一个“信任库”。

我遇到以下错误:

该服务器的证书无效。您可能正在连接到假装为“ 192.168 ....”的服务器,这可能会使您的机密信息受到威胁

这是我的一些实现:

let pathToCert = Bundle.main.path(forResource: "truststore-root", ofType: "cer")
let localCertificate : NSData = NSData(contentsOfFile: pathToCert! )!

let serverTrustPolicy = ServerTrustPolicy.pinCertificates(
    certificates : [SecCertificateCreateWithData(nil, localCertificate)!],
    validateCertificateChain : true,
    validateHost : false
)

let serverTrustPolicies = [
    "https://192.168.50.31" : serverTrustPolicy
]

return Alamofire.SessionManager(
    configuration: configuration,
    serverTrustPolicyManager: ServerTrustPolicyManager(policies: serverTrustPolicies)
)
查理塔

首先,您需要在自己的应用程序目标中包含自签名的ssl证书。

注意:证书必须采用iOS可以读取的格式。您可能需要将truststore-root.cer文件转换为其他格式。在某些情况下,这是一个反复试验的过程。

然后,您可以调整代码以使用如下所示的便捷certificates(in:)功能ServerTrustPolicy

let serverTrustPolicy = ServerTrustPolicy.pinCertificates(
    certificates: ServerTrustPolicy.certificates(),
    validateCertificateChain: true,
    validateHost: false
)

let serverTrustPolicies = [
    "192.168.50.31": serverTrustPolicy
]

return Alamofire.SessionManager(
    configuration: configuration,
    serverTrustPolicyManager: ServerTrustPolicyManager(policies: serverTrustPolicies)
)

此功能将扫描您的主捆绑包,并返回包含以下后缀之一的所有文件“ .cer”,“。CER”,“。crt”,“。CRT”,“。der”,“。DER”。

更新:您可以按照答案从终端下载ssl证书。然后双击将其导入您的钥匙串。最后,您可以将证书从钥匙串中导出为.cer文件。这具有iOS可以读取的正确格式。通过手动调用的certificates(in:)功能来验证是否是这种情况ServerTrustPolicy它现在应该返回您的证书。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用自签名证书和CA的Android SSL HTTP请求

来自分类Dev

通过https的REST API的自签名证书VS CA证书

来自分类Dev

如何使用自签名OpenSSL证书在HTTPS上测试PWA?

来自分类Dev

Swift:如何使用自签名证书请求URL?

来自分类Dev

如何使用WinHTTP通过自签名证书执行SSL

来自分类Dev

如何使用WinHTTP通过自签名证书执行SSL

来自分类Dev

如何将 HTTPS 请求从 Angular 前端发送到使用自签名证书保护的服务器?

来自分类Dev

如何以编程方式添加自签名证书以从Java代码发出HTTPS请求?

来自分类Dev

如何在 ruby 中使用 Net::HTTP 正确将 ca_file 用于自签名证书?

来自分类Dev

使用自签名证书通过HTTPS进行带有CORS请求的Phonegap应用

来自分类Dev

使用相同的自签名CA编码多个证书?

来自分类Dev

在Node JS中对WebSocket(ws)使用自签名CA证书

来自分类Dev

如何在Alamofire中实施自签名证书?

来自分类Dev

Windows:如何创建自签名根证书以及使用自签名根证书签名的自签名证书

来自分类Dev

自签名证书上的受信任CA

来自分类Dev

如何为HTTPS Node.js服务器使用自签名证书?

来自分类Dev

如何使用自签名证书从 JSON 请求中获取对象列表

来自分类Dev

如何获得Python请求以信任自签名SSL证书?

来自分类Dev

如何创建证书签名请求(CSR)OWIN自托管

来自分类Dev

OpenSSL区分受信任的CA证书与自签名的证书

来自分类Dev

如何使用由公共CA机构签名的服务器公共证书解决“无法找到到所请求目标的有效证书路径”?

来自分类Dev

如何部署自签名证书?

来自分类Dev

具有自签名证书的Https iOS

来自分类Dev

具有自签名证书的Https iOS

来自分类Dev

如何创建自己的自签名根证书和要在Java密钥库中导入的中间CA?

来自分类Dev

如何在不信任CA的情况下信任自签名证书?

来自分类Dev

如何使用我自己的CA证书签名的具有多个DNS条目的SSL证书

来自分类Dev

在带有自签名证书的Python中使用请求时,证书验证失败

来自分类Dev

如何在两个Tomcat之间使用https时创建两个Tomcat满意的自签名证书?

Related 相关文章

  1. 1

    使用自签名证书和CA的Android SSL HTTP请求

  2. 2

    通过https的REST API的自签名证书VS CA证书

  3. 3

    如何使用自签名OpenSSL证书在HTTPS上测试PWA?

  4. 4

    Swift:如何使用自签名证书请求URL?

  5. 5

    如何使用WinHTTP通过自签名证书执行SSL

  6. 6

    如何使用WinHTTP通过自签名证书执行SSL

  7. 7

    如何将 HTTPS 请求从 Angular 前端发送到使用自签名证书保护的服务器?

  8. 8

    如何以编程方式添加自签名证书以从Java代码发出HTTPS请求?

  9. 9

    如何在 ruby 中使用 Net::HTTP 正确将 ca_file 用于自签名证书?

  10. 10

    使用自签名证书通过HTTPS进行带有CORS请求的Phonegap应用

  11. 11

    使用相同的自签名CA编码多个证书?

  12. 12

    在Node JS中对WebSocket(ws)使用自签名CA证书

  13. 13

    如何在Alamofire中实施自签名证书?

  14. 14

    Windows:如何创建自签名根证书以及使用自签名根证书签名的自签名证书

  15. 15

    自签名证书上的受信任CA

  16. 16

    如何为HTTPS Node.js服务器使用自签名证书?

  17. 17

    如何使用自签名证书从 JSON 请求中获取对象列表

  18. 18

    如何获得Python请求以信任自签名SSL证书?

  19. 19

    如何创建证书签名请求(CSR)OWIN自托管

  20. 20

    OpenSSL区分受信任的CA证书与自签名的证书

  21. 21

    如何使用由公共CA机构签名的服务器公共证书解决“无法找到到所请求目标的有效证书路径”?

  22. 22

    如何部署自签名证书?

  23. 23

    具有自签名证书的Https iOS

  24. 24

    具有自签名证书的Https iOS

  25. 25

    如何创建自己的自签名根证书和要在Java密钥库中导入的中间CA?

  26. 26

    如何在不信任CA的情况下信任自签名证书?

  27. 27

    如何使用我自己的CA证书签名的具有多个DNS条目的SSL证书

  28. 28

    在带有自签名证书的Python中使用请求时,证书验证失败

  29. 29

    如何在两个Tomcat之间使用https时创建两个Tomcat满意的自签名证书?

热门标签

归档