> 패키지 및 시스템 관리 > openssl pkcs12

openssl pkcs12: PKCS#12 파일 관리

PKCS#12 (Personal Information Exchange Syntax) 파일은 개인 키와 해당 인증서를 하나의 암호화된 파일로 묶어 저장하는 표준 형식입니다. `openssl pkcs12` 명령어는 이러한 PKCS#12 파일을 생성, 파싱, 변환하는 데 사용됩니다. 주로 웹 서버의 SSL/TLS 인증서와 개인 키를 한 번에 관리하거나, 다른 시스템으로 인증서를 가져오거나 내보낼 때 활용됩니다.

개요

`openssl pkcs12`는 OpenSSL 툴킷의 서브 명령어로, PKCS#12 형식의 파일을 다루는 데 특화되어 있습니다. 이 명령어를 통해 개인 키와 인증서를 PKCS#12 파일로 묶거나(내보내기), PKCS#12 파일에서 개인 키와 인증서를 추출(가져오기)할 수 있습니다.

주요 기능

  • 개인 키와 인증서를 PKCS#12 파일로 내보내기
  • PKCS#12 파일에서 개인 키 추출
  • PKCS#12 파일에서 인증서 추출
  • PKCS#12 파일의 암호 변경

주요 옵션

`openssl pkcs12` 명령어는 다양한 옵션을 통해 PKCS#12 파일의 생성, 추출, 암호화 방식 등을 세밀하게 제어할 수 있습니다.

기본 동작 및 파일 입출력

암호 및 보안

추출 및 필터링

생성된 명령어:

명령어를 조합해 보세요.

설명:

`openssl pkcs12` 명령어를 실행합니다.

위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.

사용 예시

다음은 `openssl pkcs12` 명령어를 사용하여 PKCS#12 파일을 다루는 몇 가지 일반적인 시나리오입니다.

개인 키와 인증서를 PKCS#12 파일로 내보내기

openssl pkcs12 -export -out output.p12 -inkey key.pem -in cert.pem -name "My Certificate"

개인 키(key.pem)와 인증서(cert.pem)를 하나의 PKCS#12 파일(output.p12)로 묶습니다. 이 과정에서 암호를 설정합니다.

PKCS#12 파일에서 개인 키 추출

openssl pkcs12 -in input.p12 -nocerts -out key.pem -nodes

암호화된 PKCS#12 파일(input.p12)에서 개인 키를 추출하여 key.pem 파일로 저장합니다. 이 과정에서 PKCS#12 파일의 암호를 입력해야 합니다.

PKCS#12 파일에서 인증서 추출

openssl pkcs12 -in input.p12 -nokeys -out cert.pem

PKCS#12 파일(input.p12)에서 인증서만 추출하여 cert.pem 파일로 저장합니다. 이 과정에서 PKCS#12 파일의 암호를 입력해야 합니다.

PKCS#12 파일의 암호 변경

openssl pkcs12 -in old.p12 -out new.p12 -passin pass:old_password -passout pass:new_password

기존 PKCS#12 파일(old.p12)의 암호를 새로운 암호로 변경하여 new.p12 파일로 저장합니다. `-passin`과 `-passout` 옵션을 사용하여 암호를 지정합니다.

설치

`openssl pkcs12` 명령어는 OpenSSL 패키지의 일부입니다. 대부분의 Linux 배포판에는 OpenSSL이 기본적으로 설치되어 있지만, 만약 설치되어 있지 않다면 다음 명령어를 사용하여 설치할 수 있습니다.

Debian/Ubuntu

sudo apt update && sudo apt install openssl

APT 패키지 관리자를 사용하여 OpenSSL을 설치합니다.

CentOS/RHEL/Fedora

sudo yum install openssl
# 또는
sudo dnf install openssl

YUM 또는 DNF 패키지 관리자를 사용하여 OpenSSL을 설치합니다.

팁 & 주의사항

PKCS#12 파일은 민감한 개인 키를 포함하므로, 사용 시 보안에 각별히 주의해야 합니다.

보안 고려사항

  • **강력한 암호 사용**: PKCS#12 파일의 암호는 무차별 대입 공격에 강하도록 충분히 길고 복잡하게 설정해야 합니다.
  • **암호 노출 방지**: `-passin` 또는 `-passout` 옵션에 암호를 직접 입력하는 대신, `env:VAR_NAME` 또는 `file:path` 방식을 사용하여 셸 히스토리에 암호가 남지 않도록 하는 것이 좋습니다.
  • **`-nodes` 사용 주의**: 개인 키를 암호화하지 않고 추출하는 `-nodes` 옵션은 매우 위험하므로, 반드시 필요한 경우에만 사용하고 추출된 키 파일의 보안에 만전을 기해야 합니다.
  • **백업**: 중요한 인증서와 키는 항상 안전한 곳에 백업해 두십시오.

OpenSSL 버전 호환성

OpenSSL 버전 간에 일부 옵션이나 기본 동작에 차이가 있을 수 있습니다. 문제가 발생하면 사용 중인 OpenSSL 버전의 공식 문서를 참조하는 것이 좋습니다 (`man openssl-pkcs12`).


동일 카테고리 명령어