操作指南:在Dapr sidecar中安装证书

配置Dapr sidecar容器以信任证书

Dapr sidecar可以通过配置来信任与外部服务通信所需的证书。这在需要信任自签名证书的场景中非常有用,例如:

  • 使用HTTP绑定
  • 为sidecar配置出站代理

支持信任证书颁发机构(CA)证书和叶子证书。


当sidecar作为容器运行时,可以进行以下配置。

  1. 使用卷挂载将证书配置为可用于sidecar容器。
  2. 将sidecar容器中的环境变量SSL_CERT_DIR指向包含证书的目录。

注意: 对于Windows容器,请确保容器以管理员权限运行,以便可以安装证书。

以下示例展示了如何使用Docker Compose在sidecar容器中安装证书(证书位于本地的./certificates目录中):

version: '3'
services:
  dapr-sidecar:
    image: "daprio/daprd:edge" # dapr版本必须至少为v1.8
    command: [
      "./daprd",
     "-app-id", "myapp",
     "-app-port", "3000",
     ]
    volumes:
        - "./components/:/components"
        - "./certificates:/certificates" # (步骤1)将证书文件夹挂载到sidecar容器
    environment:
      - "SSL_CERT_DIR=/certificates" # (步骤2)将环境变量设置为证书文件夹的路径
    # 对于Windows容器,取消注释下面的行
    # user: ContainerAdministrator

注意: 当sidecar不在容器内运行时,证书必须直接安装在主机操作系统上。


在Kubernetes上:

  1. 使用卷挂载将证书配置为可用于sidecar容器。
  2. 将sidecar容器中的环境变量SSL_CERT_DIR指向包含证书的目录。

以下示例YAML展示了一个部署:

  • 将pod卷附加到sidecar
  • 设置SSL_CERT_DIR以安装证书
apiVersion: apps/v1
kind: Deployment
metadata:
  name: myapp
  namespace: default
  labels:
    app: myapp
spec:
  replicas: 1
  selector:
    matchLabels:
      app: myapp
  template:
    metadata:
      labels:
        app: myapp
      annotations:
        dapr.io/enabled: "true"
        dapr.io/app-id: "myapp"
        dapr.io/app-port: "8000"
        dapr.io/volume-mounts: "certificates-vol:/tmp/certificates" # (步骤1)将证书文件夹挂载到sidecar容器
        dapr.io/env: "SSL_CERT_DIR=/tmp/certificates" # (步骤2)将环境变量设置为证书文件夹的路径
    spec:
      volumes:
        - name: certificates-vol
          hostPath:
            path: /certificates
#...

注意: 使用Windows容器时,sidecar容器以管理员权限启动,这是安装证书所需的。这不适用于Linux容器。

完成这些步骤后,SSL_CERT_DIR指向的目录中的所有证书都将被安装。

演示

观看在社区电话64中使用安装SSL证书和安全使用HTTP绑定的演示:

相关链接

下一步

启用预览功能