cfssl生成証明書


一、cfsslツールセットのインストール

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
chmod +x cfssl_linux-amd64 cfssljson_linux-amd64 cfssl-certinfo_linux-amd64
mv cfssl_linux-amd64 /usr/local/bin/cfssl
mv cfssljson_linux-amd64 /usr/local/bin/cfssljson
mv cfssl-certinfo_linux-amd64 /usr/bin/cfssl-certinfo

二、ca証明書の作成


cfssl print-defaults config > config.json#デフォルト構成テンプレートcfssl print-defaults csr>csr.json#デフォルトcsrリクエストテンプレート

2.1プロファイルの作成

cat > ca-config.json <

CAプロファイルは、ルート証明書を構成するための使用シーン(profile、異なるパラメータを指定するために複数使用可能)と特定のパラメータ(usage、期限切れ、サービス側認証、クライアント認証、暗号化など)に使用され、その後、証明書に署名する際にprofileを使用します.
  • signing:この証明書が他の証明書に署名するために使用できることを示す.生成されたca.pem証明書のCA=TRUE;
  • server auth:サーバ証明書を生成し、クライアントによってサーバID
  • を検証するために使用される.
  • client auth:クライアント証明書を生成し、etcdctlクライアント
  • などのクライアント認証をサーバによって検証するために使用される.
  • peer auth:etcdクラスタノードなどの相互通信のためのピアツーピア証明書を生成する
  • .

    2.2証明書署名要求ファイルの作成

    cat >ca-csr.json  <
  • CN:Common Name;発行者情報、
  • C:Country、所在国
  • ST:State、所在省
  • L:Locality、所在都市
  • O:Organization,組織名
  • 2.3 ca証明書の生成


    cfssl gencert -initca ca-csr.json|cfssljson-bare ca-は、次のファイルを取得します.
    ca-key.pem
    ca.csr
    ca.pem
    

    ca-keyを維持してください.pemファイルは安全です.この鍵を使用すると、CAで任意のタイプの証明書を作成できます.

    三、caを使って証明書を発行する


    3.1 server certificateの生成


    3.1.1 jsonファイルの作成
    cat > server-csr.json <

    3.1.2証明書の生成
    cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=server server-csr.json | cfssljson -bare server
    

    次のファイルが得られます.
    server-key.pem
    server.csr
    server.pem
    

    3.2 peer certificate(Back to Top)の生成

    cat >peer-csr.json <

    3.2.1証明書の生成
    cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=peer peer-csr.json | cfssljson -bare peer
    

    3.3クライアントcertificateの生成
    cat > client-csr.json <

    3.3.1証明書の生成
    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
    https://coreos.com/os/docs/latest/generate-self-signed-certificates.html