본문 바로가기

리눅스

우분투에서 cfssl와 cfssljson을 최신 버전으로 설치하는 방법

반응형

우분투에서 cfssl와 cfssljson을 최신 버전으로 설치하는 방법

cfssl(Cloudflare's PKI and TLS toolkit)은 인증서 생성 및 관리를 위한 강력한 도구입니다.

cfssl releases

cfssl_releases

cfssl 설치

curl -sfSL https://github.com/cloudflare/cfssl/releases/download/v1.6.5/cfssl_1.6.5_linux_amd64 -o /usr/local/bin/cfssl
chmod +x /usr/local/bin/cfssl
cfssl version
$ cfssl version
Version: 1.6.5
Runtime: go1.22.0

cfssljson 설치

curl -sfSL https://github.com/cloudflare/cfssl/releases/download/v1.6.5/cfssljson_1.6.5_linux_amd64 -o /usr/local/bin/cfssljson
chmod +x /usr/local/bin/cfssljson
cfssljson --version
$ cfssljson --version
Version: 1.6.5
Runtime: go1.22.0

최신 버전을 자동으로 다운로드하고 설치하는 스크립트

패키지 설치

sudo apt-get update
sudo apt-get install -y curl jq

스크립트 작성

vim install_cfssl.sh
#!/bin/bash

# 최신 cfssl 버전 가져오기
LATEST_VERSION=$(curl --silent "https://api.github.com/repos/cloudflare/cfssl/releases/latest" | jq -r '.tag_name' | sed 's/^v//')

# cfssl 다운로드 및 설치
curl -sfSL https://github.com/cloudflare/cfssl/releases/download/v${LATEST_VERSION}/cfssl_${LATEST_VERSION}_linux_amd64 -o /usr/local/bin/cfssl
chmod +x /usr/local/bin/cfssl

# cfssljson 다운로드 및 설치
curl -sfSL https://github.com/cloudflare/cfssl/releases/download/v${LATEST_VERSION}/cfssljson_${LATEST_VERSION}_linux_amd64 -o /usr/local/bin/cfssljson
chmod +x /usr/local/bin/cfssljson

# 버전 확인
cfssl version
cfssljson --version

실행 권한 부여

chmod +x install_cfssl.sh

스크립트 실행

sudo ./install_cfssl.sh

 

우분투에서 cfssl와 cfssljson을 최신 버전으로 설치할 수 있습니다.

728x90

cfssl을 사용하여 인증서를 생성하는 방법

1. CA 구성 파일 작성

CA(인증서 발급 기관)의 구성 파일(ca-config.json)과 서명 요청 파일(ca-csr.json)을 작성합니다.

 

ca-config.json

  • CA의 서명 프로필과 만료 기간을 정의합니다.
vim ca-config.json
{
  "signing": {
    "default": {
      "expiry": "87600h"
    },
    "profiles": {
      "server": {
        "expiry": "87600h",
        "usages": [
          "signing",
          "key encipherment",
          "server auth"
        ]
      },
      "client": {
        "expiry": "87600h",
        "usages": [
          "signing",
          "client auth"
        ]
      }
    }
  }
}

ca-csr.json

  • CA 인증서의 서명 요청을 정의합니다.
vim ca-csr.json
{
  "CN": "My CA",
  "key": {
    "algo": "rsa",
    "size": 2048
  },
  "ca": {
    "expiry": "87600h"
  }
}

2. CA 인증서와 키 생성

CA 인증서와 키를 생성합니다.

  • ca-csr.json을 사용하여 CA 인증서와 키를 생성하며 결과 파일은 ca-key.pem과 ca.pem이 됩니다.
cfssl gencert -initca ca-csr.json | cfssljson -bare ca

3. 서버/클라이언트 서명 요청 파일 작성

server-csr.json

  • 서버 인증서를 생성할 경우 서버 서명 요청 파일(server-csr.json)을 작성합니다.
vim server-csr.json
{
  "CN": "example.com",
  "key": {
    "algo": "rsa",
    "size": 2048
  },
  "names": [
    {
      "O": "Example Org"
    }
  ],
  "hosts": [
    "example.com",
    "www.example.com"
  ]
}

client-csr.json

  • 클라이언트 인증서를 생성할 경우 클라이언트 서명 요청 파일(client-csr.json)을 작성합니다.
vim client-csr.json
{
  "CN": "client",
  "key": {
    "algo": "rsa",
    "size": 2048
  },
  "names": [
    {
      "O": "Example Org"
    }
  ]
}

4. 서버/클라이언트 인증서 생성

CA 인증서를 사용하여 서버 또는 클라이언트 인증서를 생성합니다.

 

서버 인증서 생성

  • server-csr.json을 사용하여 서버 인증서와 키를 생성하며 결과 파일은 server-key.pem과 server.pem이 됩니다.
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=server server-csr.json | cfssljson -bare server

클라이언트 인증서 생성

  • client-csr.json을 사용하여 클라이언트 인증서와 키를 생성하며 결과 파일은 client-key.pem과 client.pem이 됩니다.
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=client client-csr.json | cfssljson -bare client

5. 생성된 인증서 확인

생성된 인증서와 키 파일을 확인하여 올바르게 생성되었는지 검토합니다. 인증서의 내용을 확인하기 위해 openssl을 사용할 수 있습니다

openssl x509 -in server.pem -text -noout

 

참고URL

- github : cfssl releases

 

728x90
반응형