国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

證書簽名工具 CFSSL

沈儉 / 3633人閱讀

摘要:任何知道私鑰的人都可以充當頒發(fā)證書。此密鑰允許在中創(chuàng)建任何類型的證書。使用認證中心的私鑰和證書簽名生成機構的證書和私鑰。將在任何機器上工作。它將簡化證書例程,但會增加安全風險。

資源

https://blog.cloudflare.com/i... 官方博客

特性 概念 安裝

下載安裝

  wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64
  wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64
  wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64
  
  sudo cp cfssl_linux-amd64 /usr/local/bin/cfssl 
  sudo cp cfssljson_linux-amd64 /usr/local/bin/cfssljson
  sudo cp cfssl-certinfo_linux-amd64 /usr/local/bin/cfssl-certinfo
  
  cd /usr/local/bin/ 
  
  chmod +x cfssl
  chmod +x cfssljson
  chmod +x cfssl-certinfo

初始化

mkdir ~/cfssl
cd ~/cfssl
cfssl print-defaults config > ca-config.json
cfssl print-defaults csr > ca-csr.json

創(chuàng)建自己的內部服務使用的CA認證中心

運行認證中心需要一個CA證書和相應的私鑰。后者是極其敏感的數(shù)據(jù)。任何知道私鑰的人都可以充當CA頒發(fā)證書。因此,私鑰的保護至關重要

#配置CA的證書生成策略
cat << EOF > ca-config.json
{
  "signing": {
      "default": {
          "expiry": "87600h"
      },
      "profiles": {
          "server": {
              "expiry": "87600h",
              "usages": [
                  "signing",
                  "key encipherment",
                  "server auth"
              ]
          },
          "client": {
              "expiry": "87600h",
              "usages": [
                  "signing",
                  "key encipherment",
                  "client auth"
              ]
          },
          "peer": {
              "expiry": "87600h",
              "usages": [
                  "signing",
                  "key encipherment",
                  "server auth",
                  "client auth"
              ]
          }
      }
  }
}
EOF
ca-config.json:可以定義多個 profiles,分別指定不同的過期時間、使用場景等參數(shù);后續(xù)在簽名證書時使用某個 profile;
signing:表示該證書可用于簽名其它證書;生成的 ca.pem 證書中 CA=TRUE;
server auth:服務端證書;表示client可以用該 CA 對server提供的證書進行驗證;server 由服務器使用,并由客戶端驗證服務器身份
client auth:客戶端證書;表示server可以用該CA對client提供的證書進行驗證;client用于通過服務器驗證客戶端。
peer 對等證書;就是server auth、client auth都有的。成員之間共用,供它們彼此之間通信使用

#生成CA的證書和私鑰
cat << EOF > ca-csr.json
{
  "CN": "dudu_ca",
  "key": {
    "algo": "rsa",
    "size": 2048
  },
  "names": [
    {
      "C": "CN",
      "ST": "BeiJing",
      "L": "BeiJing",
      "O": "dudu_ca",
      "OU": "dudu_ca"
    }
  ]
}
EOF
#生成運行CA所必需的文件ca-key.pem(私鑰)和ca.pem(證書),還會生成ca.csr(證書簽名請求),用于交叉簽名或重新簽名。
#請保持ca-key.pem文件的安全。此密鑰允許在CA中創(chuàng)建任何類型的證書。*.csr 文件在整個過程中不會使用

cfssl gencert -initca ca-csr.json | cfssljson -bare ca

#生成如下文件
ca.csr  ca-key.pem  ca.pem

生成kubernetes的證書。

證書最重要的價值是通用名稱(CN)和主機(hosts)

最重要的部分是CN ,這應該是您的主機名和hosts陣列,它必須包含所有的:您的本地主機名、127.0.0.1、服務器的私有IP地址(不是其面向公眾的IP)

#kubernetes服務的生成策略
cat << EOF > kubernetes-csr.json
{
  "CN": "kubernetes",
  "hosts": [
    "127.0.0.1",
    "10.29.167.233",
    "169.169.0.1",
    "kubernetes",
    "kubernetes.default",
    "kubernetes.default.svc",
    "kubernetes.default.svc.cluster",
    "kubernetes.default.svc.cluster.local"
  ],
  "key": {
      "algo": "rsa",
      "size": 2048
  },
  "names": [
      {
          "C": "CN",
          "ST": "BeiJing",
          "L": "BeiJing",
          "O": "k8s",
          "OU": "System"
      }
  ]
}
EOF
#“O”:Organization,kube-apiserver 從證書中提取該字段作為請求用戶所屬的組 (Group);
#"CN": 字段 kube-apiserver 從證書中提取該字段作為請求的用戶名 (User Name);瀏覽器使用該字段驗證網(wǎng)站是否合法
#如果 hosts 字段不為空則需要指定授權使用該證書的 IP 或域名列表,由于該證書后續(xù)被 etcd 集群和 kubernetes master 集群使用,所以上面分別指定了 etcd 集群、kubernetes master 集群的主機 IP 和 kubernetes 服務的服務 IP(一般是 kue-apiserver 指定的 service-cluster-ip-range 網(wǎng)段的第一個IP,如 10.254.0.1。

#對等證書   生成kubernetes的證書和私鑰。使用CA認證中心的私鑰和證書簽名生成機構的證書和私鑰。
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=peer kubernetes-csr.json | cfssljson -bare kubernetes

 #  子節(jié)點客戶端證書
  cat << EOF > kubernetes-proxy-csr.json
  {
    "CN": "kube-proxy",
    "hosts": [],
    "key": {
      "algo": "rsa",
      "size": 2048
    },
    "names": [
      {
        "C": "CN",
        "ST": "BeiJing",
        "L": "BeiJing",
        "O": "k8s",
        "OU": "System"
      }
    ]
  }
  EOF
 cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=client kubernetes-proxy-csr.json | cfssljson -bare proxy
 
 # master 主節(jié)點api服務管理客戶端證書
 cat << EOF > kubernetes-apiserver-client-csr.json
  {
    "CN": "controllermanager",
    "hosts": [],
    "key": {
      "algo": "rsa",
      "size": 2048
    },
    "names": [
      {
        "C": "CN",
        "ST": "BeiJing",
        "L": "BeiJing",
        "O": "k8s",
        "OU": "System"
      }
    ]
  }
  EOF
 cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=client kubernetes-apiserver-client-csr.json | cfssljson -bare apiserver

#生成如下文件
kubernetes.csr  kubernetes-key.pem  kubernetes.pem

#服務端證書 -profile=server 
cfssl print-defaults csr > server-csr.json
  "CN": "coreos1",
  "hosts": [
      "192.168.122.68",
      "ext.example.com",
      "coreos1.local",
      "coreos1"
  ],
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=server server-csr.json | cfssljson -bare server

#客戶端證書 -profile=client 客戶端證書可以忽略hosts,只設定CN通用名
cfssl print-defaults csr > client-csr.json
  修改
  "CN": "client",
  "hosts": [""],
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=client client-csr.json | cfssljson -bare client

驗證證書

openssl x509 -in ca.pem -text -noout
openssl x509 -in server.pem -text -noout
openssl x509 -in client.pem -text -noout

cfssl-certinfo -cert kubernetes.pem

導入證書到系統(tǒng),更新系統(tǒng)證書庫

update-ca-trust check   #檢查是否啟用
update-ca-trust enable  #啟用系統(tǒng)共享CA存儲
cp foo.crt /etc/pki/ca-trust/source/anchors/  #將證書復制到此目錄  具有高優(yōu)先級,不會被覆蓋
update-ca-trust extract   #最后提取更新

cat foo.crt > /etc/pki/tls/certs/ca-bundle.crt   #老版本的處理方式

注意事項

設置所有私鑰文件權限 chmod 600 *-key.pem

不要把你的ca-key.pem放入容器的Linux配置,建議將其存放在安全的地方。該密鑰允許生成盡可能多的證書

使用通配符*地址生成的密鑰和證書。將在任何機器上工作。它將簡化證書例程,但會增加安全風險。

常用操作命令 配置 功能 功能1 功能2 調試 優(yōu)化 常見問題 實際應用
  cat << EOF > kubernetes-csr.json
    {
      "CN": "kubernetes",
      "hosts": [
        "127.0.0.1",
        "10.29.167.233",
        "169.169.0.1",
        "kubernetes",
        "kubernetes.default",
        "kubernetes.default.svc",
        "kubernetes.default.svc.cluster",
        "kubernetes.default.svc.cluster.local"
      ],
      "key": {
          "algo": "rsa",
          "size": 2048
      },
      "names": [
          {
              "C": "CN",
              "ST": "BeiJing",
              "L": "BeiJing",
              "O": "k8s",
              "OU": "System"
          }
      ]
    }
    EOF
    cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=peer kubernetes-csr.json | cfssljson -bare kubernetes
    
  cat << EOF > kubernetes-client-csr.json
  {
    "CN": "controllermanager",
    "hosts": [],
    "key": {
      "algo": "rsa",
      "size": 2048
    },
    "names": [
      {
        "C": "CN",
        "ST": "BeiJing",
        "L": "BeiJing",
        "O": "k8s",
        "OU": "System"
      }
    ]
  }
  EOF
  cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=client kubernetes-client-csr.json | cfssljson -bare apiserver
  
  cat << EOF > kube-proxy-csr.json
  {
    "CN": "kube-proxy",
    "hosts": [],
    "key": {
      "algo": "rsa",
      "size": 2048
    },
    "names": [
      {
        "C": "CN",
        "ST": "BeiJing",
        "L": "BeiJing",
        "O": "k8s",
        "OU": "System"
      }
    ]
  }
  EOF
  cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=client kube-proxy-csr.json | cfssljson -bare proxy
  
  證書轉為瀏覽器可用的p12證書
  openssl pkcs12 -export -in apiserver.pem  -out apiserver.p12 -inkey apiserver-key.pem

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/32806.html

相關文章

  • kubeadm部署k8s1.9高可用集群--2搭建etcd集群

    摘要:搭建集群前言安裝的集群,默認是一個單機的容器化的,并且和通信沒有經過加密和認證,這點是需要改造的。所以首先我們需要先部署一個三節(jié)點的集群,二進制部署,守護進程,并且需要生成證書。 搭建etcd集群 前言 kubeadm安裝的集群,默認etcd是一個單機的容器化的etcd,并且k8s和etcd通信沒有經過ssl加密和認證,這點是需要改造的。所以首先我們需要先部署一個三節(jié)點的etcd集群,...

    ZHAO_ 評論0 收藏0
  • kubeadm部署k8s1.9高可用集群--2搭建etcd集群

    摘要:搭建集群前言安裝的集群,默認是一個單機的容器化的,并且和通信沒有經過加密和認證,這點是需要改造的。所以首先我們需要先部署一個三節(jié)點的集群,二進制部署,守護進程,并且需要生成證書。 搭建etcd集群 前言 kubeadm安裝的集群,默認etcd是一個單機的容器化的etcd,并且k8s和etcd通信沒有經過ssl加密和認證,這點是需要改造的。所以首先我們需要先部署一個三節(jié)點的etcd集群,...

    scq000 評論0 收藏0
  • k8s 證書配置大全

    摘要:證書配置大全證書是網(wǎng)絡通信的安全的要素,是現(xiàn)代網(wǎng)絡通信的基本配置。包含一個命令行工具用于簽名,驗證并且捆綁證書的服務。 Kubernetes 證書配置大全 證書是網(wǎng)絡通信的安全的要素,是現(xiàn)代網(wǎng)絡通信的基本配置。各種遠程調用的安全都離不開非對稱加密提供的保障。 下載證書工具 cfssl 是 CloudFlare 開源的一款PKI/TLS工具。 CFSSL 包含一個命令行工具(cfssl,...

    lentrue 評論0 收藏0
  • 如何在Tomcat中做TLS客戶端認證

    摘要:順便一提,如果要使用客戶端認證就必須使用服務端認證。修改,添加如下可以看到我們開啟了客戶端認證,也開啟了服務端認證。所以如果要正確訪問得像下面這樣,指定證書,以及客戶端自己簽發(fā)的證書及測試我們現(xiàn)在用來訪問看看。 常見的https網(wǎng)站做的是服務端認證(server authentication),瀏覽器通過證書判斷你所訪問的https://baidu.com是否真的是百度,而不是其他人偽...

    sugarmo 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<