728x90
우분투에서 cfssl와 cfssljson을 최신 버전으로 설치하는 방법
cfssl(Cloudflare's PKI and TLS toolkit)은 인증서 생성 및 관리를 위한 강력한 도구입니다.
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
'리눅스' 카테고리의 다른 글
[draft] 우분투에서 패키지의 의존성을 확인하는 명령어 (0) | 2024.07.30 |
---|---|
[draft] 우분투에서 특정 패키지 업그레이드를 제어하는 방법 (0) | 2024.07.30 |
[draft] 우분투에서 APT 패키지 매니저를 사용하여 etcd를 설치하는 방법 (0) | 2024.07.29 |
[draft] Vault를 사용하여 SSH CA 키를 관리하는 방법 (0) | 2024.07.29 |
[draft] 우분투에서 사용자별 용량 제한을 설정하고 사용하는 방법 (0) | 2024.07.28 |