美文网首页
创建tls的俩种方式

创建tls的俩种方式

作者: PENG先森_晓宇 | 来源:发表于2020-11-10 11:25 被阅读0次

    当ingress使用https时,例如

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: tls-example-ingress
      namespace: dashboard
    spec:
      tls:
      - hosts:
          - https-example.foo.com
        secretName: testsecret-tls
      rules:
      - host: https-example.foo.com
        http:
          paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: service1
                port:
                  number: 80
    

    域名https-example.foo.com的https证书如下

    xiaoyudeMacBook-Pro:tls xiaoyu$ pwd 
    /Users/xiaoyu/mywork/first-k8s/k8s/tls
    xiaoyudeMacBook-Pro:tls xiaoyu$ ls -l
    total 40
    -rwxr-xr-x  1 xiaoyu  staff  1675 May 18 23:44 https-example.foo.com.key
    -rwxr-xr-x  1 xiaoyu  staff  3671 May 18 23:44 https-example.foo.com.pem
    

    可以看到我们需要创建一个secret,类型为tls的testsecret-tls,创建该secret有俩种方式

    • shell命令
    PATH=/Users/xiaoyu/mywork/first-k8s/k8s/tls
    KEY=https-example.foo.com.key
    CERT=https-example.foo.com.pem
    NAMESPACE=dashboard
    SECRET_NAME=testsecret-tls
    kubectl create secret tls ${SECRET_NAME} --key ${PATH}/${KEY} --cert ${PATH}/${CERT} -n ${NAMESPACE}
    
    • yaml文件
    apiVersion: v1
    kind: Secret
    metadata:
      name: testsecret-tls
      namespace: dashboard
    data:
      tls.crt: base64 编码的 cert
      tls.key: base64 编码的 key
    type: kubernetes.io/tls
    

    现在的问题是base64 编码的 cert和base64 编码的 key怎么获得?可使用cat命令获得文件内容的base64

    cat ${PATH}/tls.crt | base64
    cat ${PATH}/tls.key | base64
    

    如果想要获得字符串的base64,可使用echo

    echo -n '111' | base64
    MTEx
    

    如果想把base64转为正常字符串,使用如下命令,增加-d参数

    echo -n 'MTEx' | base64 -d     
    111
    

    相关文章

      网友评论

          本文标题:创建tls的俩种方式

          本文链接:https://www.haomeiwen.com/subject/tyadbktx.html