小编lip*_*nen的帖子

iOS中的客户端证书和身份

我使用SecKeyGeneratePair函数为基于Swift的iOS应用程序生成了私钥和公钥.
然后,我使用iOS CSR生成生成证书签名请求,我的服务器以PEM格式回复证书链.
我使用以下代码将PEM证书转换为DER格式:

var modifiedCert = certJson.replacingOccurrences(of: "-----BEGIN CERTIFICATE-----", with: "")
modifiedCert =  modifiedCert.replacingOccurrences(of: "-----END CERTIFICATE-----", with: "")
modifiedCert =  modifiedCert.replacingOccurrences(of: "\n", with: "")
let dataDecoded = NSData(base64Encoded: modifiedCert, options: [])
Run Code Online (Sandbox Code Playgroud)

现在,我应该使用DER-data创建证书 let certificate = SecCertificateCreateWithData(nil, certDer)

我的问题如下:如何将证书与我在开头创建的私钥连接,并获得这两个(密钥和证书)所属的身份?
也许,将证书添加到钥匙串并获取身份使用SecItemCopyMatching?我已经按照SecIdentityRef程序中提出的程序进行了操作

编辑:

将证书添加到钥匙串时,我得到状态响应0,我相信这意味着证书已添加到钥匙串中.

let certificate: SecCertificate? = SecCertificateCreateWithData(nil, certDer)
    if certificate != nil{
        let params : [String: Any] = [
            kSecClass as String : kSecClassCertificate,
            kSecValueRef as String : certificate!
        ]
        let …
Run Code Online (Sandbox Code Playgroud)

encryption certificate ios swift

22
推荐指数
1
解决办法
1925
查看次数

使用Docker compose传递Dockerfiles的参数

我正在尝试在构建阶段使用参数化我的dockerfiles并在Docker-compose中使用参数.例如在Docker compose中我定义了一个名为bpp的服务,如下所示:

bpp:
  build:
    context: .
    dockerfile: Dockerfile.bpp
    args:
      gp : 8080
  image: serv/bpp
  restart: always
  depends_on:
    - data
  links:
    - data
Run Code Online (Sandbox Code Playgroud)

我正在尝试将名为gp的参数传递给Dockerfile.bpp,其中我在启动Python应用程序时使用参数,暴露端口等.例如在dockerfile.bpp中尝试公开端口gp如下:

EXPOSE gp
Run Code Online (Sandbox Code Playgroud)

但是,当通过命令docker-compose build构建docker文件时,我收到以下错误:错误:服务'bpp'无法构建:无效的containerPort:gp

似乎参数gp在dockerfile中不可见.有什么建议?

docker docker-compose

8
推荐指数
1
解决办法
9310
查看次数

标签 统计

certificate ×1

docker ×1

docker-compose ×1

encryption ×1

ios ×1

swift ×1