从证书获取 ssl 证书固定的命令

从证书获取 ssl 证书固定的命令

有 PEM 格式的新证书。如何从中获取(使用 OpenSSL?)iOS 期望的格式? (例子:Alamofire/源/ServerTrustEvaluation.swift)我尝试过使用类似的东西:

openssl x509 -in newcertificate.crt -outform der |openssl dgst -sha256 -binary |openssl enc -base64

但它不会像 iOS 库中的 debug 那样生成输出。我当然可以从库中的调试中获得固定 - 但我希望使用 OpenSSL 命令接收相同的固定。

答案1

如果您计划让 iOS 从网页加载证书,您只需确保 Web 服务器为其提供正确的 MIME 类型。对于pem格式化证书,MIME 类型为application/x-x509-ca-cert。如果 MIME 类型正确,iOS 可以按原样接受 PEM 格式的证书,显示一些“您确定接受...”提示,并将其安装为仅包含证书的最小“配置文件”。

如果您需要向 iOS 提供证书和相应的私钥(即您需要证书不是为了验证某些服务的身份,而是为了实际使用证书进行身份验证),那么您可能需要将两者都打包将证书和密钥放入单个 PKCS#12 文件(后缀.pfx.p12)中,并将其作为 MIME 类型提供application/x-pkcs12。可以使用以下命令转换为 PKCS#12 格式openssl pkcs12 -exportman pkcs12详细信息请参见。

另一种选择是将证书包装到带有后缀.mobileconfig(以及相应的 MIME 类型application/x-apple-aspen-config)的 Apple 风格的“配置文件”中。然而,创建.mobileconfig文件是很棘手的,除非您有一些工具可以为您完成此操作。该.mobileconfig文件是一个Apple 文件plist,即具有特定结构的XML 文件,并且可以选择对其进行签名。

相关内容