Vulnerabilities | CrackLib-2.9.11 |
make-ca-1.13
make-ca 소개
공개 키 기반 구조(PKI)는 신뢰할 수 없는 네트워크에서 알 수 없는 개체의 진위를 검증하는 방법입니다. PKI는 개별 호스트나 엔터티를 명시적으로 신뢰하는 것이 아니라 신뢰 체인을 구축하는 방식으로 작동합니다. 원격 엔터티가 제시한 인증서를 신뢰하려면 해당 인증서가 로컬 컴퓨터에서 신뢰하는 인증 기관(CA)의 루트 인증서를 사용하여 유효성을 검사할 수 있는 완전한 인증서 체인을 제시해야 합니다.
CA와 신뢰를 구축하려면 회사 주소, 소유권, 연락처 정보 등의 유효성을 검사하고 독립 조사자의 정기적인 보안 감사를 받고 항상 사용 가능한 인증서 해지 목록을 유지하는 등 CA가 모범 사례를 따랐는지 확인해야 합니다. 이는 대부분의 Linux 배포판과 마찬가지로 BLFS의 범위를 훨씬 벗어납니다. 여기에 제공된 인증서 저장소는 여기에 설명된 매우 엄격한 포함 정책을 수립한 Mozilla 재단에서 가져온 것입니다.
이 패키지는 LFS 12.1 플랫폼을 사용하여 제대로 빌드 및 작동하는 것으로 알려져 있습니다.
패키지 정보
- 다운로드(HTTP): make-ca-1.13.tar.xz
- MD5 Sum: 04bd86fe2eb299788439c3466782ce45
- 다운로드 크기: 32 KB
- 필요한 예상 디스크 공간: 6.9 MB (모든 런타임 의존성 포함)
- 예상 빌드 시간: 0.1 SBU (모든 런타임 의존성 포함)
참고
이 패키지는 https://hg.mozilla.org/ 의 신원을 확인하기 위한 CA 인증서를 제공합니다. 이 웹사이트의 신뢰 체인이 make-ca-1.13 릴리스 후에 변경된 경우 서버에서 certdata.txt의 개정본을 가져오지 못할 수 있습니다. 이 문제가 발생하면 릴리스 페이지에서 업데이트된 make-ca 릴리스를 사용합니다.
make-ca 종속성
필수
- p11-kit-0.25.3 실행 시 필요. libtasn1-4.19.0 이후에 빌드, 신뢰 앵커에서 인증서 저장소를 생성하기 위해 아래의 설명에서 필요하며 make-ca를 실행할 때마다 필요.
선택 사항 (런타임)
- nss-3.98 공유 NSSDB를 생성하기 위해
make-ca 설치 및 CA 인증서 저장소 생성
make-ca 스크립트는 p11-kit-0.25.3 신뢰 모듈의 신뢰 앵커로 사용하기 위해 certdata.txt
파일에 포함된 인증서를 다운로드 및 처리합니다. 또한 BLFS 애플리케이션에서 사용하는 시스템 인증서 저장소를 생성합니다(시스템에 권장 및 선택 패키지가 있는 경우). etc/ssl/local
에 저장된 모든 로컬 인증서는 신뢰 앵커와 생성된 인증서 저장소 모두로 가져옵니다(Mozilla의 신뢰를 재정의함). 또한 수정된 모든 신뢰 값은 업데이트하기 전에 신뢰 앵커에서 /etc/ssl/local
로 복사하여 p11-kit의 trust
유틸리티를 사용하여 신뢰 스토어에서 작동할 때 Mozilla와 다른 사용자 지정 신뢰 값을 보존합니다.
다양한 인증서 저장소를 설치하려면 먼저 make-ca 스크립트를 올바른 위치에 설치합니다.
root
사용자로
make install &&
install -vdm755 /etc/ssl/local
참고
엄밀히 말하면 이 패키지는 이 시점에 이미 설치가 완료되어 있습니다. 그러나 make-ca를 종속성으로 나열하는 대부분의 패키지는 실제로 make-ca 프로그램 자체보다는 이 패키지로 설정한 시스템 인증서 저장소가 필요합니다. 따라서 이 섹션에는 시스템 인증서 저장소를 설정하기 위해 make-ca를 사용하는 지침이 포함되어 있습니다. 지금 make-ca에 필요한 런타임 종속성이 충족되는지 확인한 후 계속 지침을 따라야 합니다.
root
사용자로 인증서 소스를 다운로드하고 다음 명령으로 시스템에서 사용할 준비를 합니다.
참고
make-ca가 업그레이드될 때 스토어를 업데이트하거나 필요한 소프트웨어가 설치될 때 스토어를 추가하기 위해 동일한 버전의 certdata.txt로 스크립트를 두 번째로 실행하는 경우, 명령줄에서 -g
스위치를 -r
스위치로 바꿉니다. 패키징하는 경우 make-ca –help
를 실행하면 사용 가능한 모든 명령줄 옵션을 확인할 수 있습니다.
/usr/sbin/make-ca -g
위의 명령으로 직접 또는 시스템 타이머를 통해 주기적으로 스토어를 업데이트해야 합니다. 타이머는 /usr/lib/systemd/system/update-pki.timer
에 설치되며, 활성화하면 매주 업데이트를 확인합니다. systemd 타이머를 활성화하려면 root
사용자로 다음과 같이 실행합니다.
systemctl enable update-pki.timer
make-ca 설정하기
대부분의 사용자에게는 추가 구성이 필요하지 않지만 make-ca에서 제공하는 기본 certdata.txt
파일은 mozilla 릴리스 브랜치에서 가져와서 Mercurial 리비전을 제공하도록 수정합니다. 이 버전이 대부분의 시스템에서 올바른 버전입니다. 이 책에서 Mozilla 제품과 함께 제공되는 파일을 포함하여 여러 가지 이유로 선호할 수 있는 다른 여러 변형 파일을 사용할 수 있습니다. 예를 들어 RedHat 및 OpenSUSE는 nss-3.98에 포함된 버전을 사용합니다. 추가 업스트림 다운로드는 /etc/make-ca/make-ca.conf.dist
에 포함된 링크에서 사용할 수 있습니다. 파일을 /etc/make-ca.conf
에 복사하고 적절하게 편집하기만 하면 됩니다.
트러스트 인자 정보
make-ca 스크립트에서 인식하는 신뢰 유형에는 SSL/TLS, S/Mime, 코드 서명의 세 가지가 있습니다. OpenSSL의 경우 각각 serverAuth
, emailProtection
, codeSigning
입니다. 세 가지 신뢰 인수 중 하나가 생략되면 인증서는 해당 역할에 대해 신뢰되지도 거부되지도 않습니다. 이 인증서를 발견하는 OpenSSL 또는 NSS를 사용하는 클라이언트는 사용자에게 경고를 표시합니다. p11-kit 지원 없이 GnuTLS를 사용하는 클라이언트는 신뢰할 수 있는 인증서를 인식하지 못합니다. 이 CA를 ca-bundle.crt
, email-ca-bundle.crt
또는 objsign-ca-bundle.crt
파일(GnuTLS 레거시 번들)에 포함하려면 적절한 신뢰 인수를 가져야 합니다.
추가 CA 인증서 추가하기
/etc/ssl/local
디렉토리는 시스템 신뢰 저장소에 추가 CA 인증서를 추가하는 데 사용할 수 있습니다. 이 디렉터리는 업그레이드 시 신뢰 값이 유지되도록 p11-kit-0.25.3에 의해 시스템 신뢰 저장소에 추가 또는 수정된 인증서를 저장하는 데도 사용됩니다. 이 디렉터리에 있는 파일은 OpenSSL이 신뢰할 수 있는 인증서 형식이어야 합니다. p11-kit-0.25.3에서 trust
유틸리티를 사용하여 가져온 인증서는 x509 확장 키 사용 값을 사용하여 시스템 앵커에 대한 기본 신뢰 값을 할당합니다.
신뢰 값을 재정의해야 하거나 일반 PEM 인코딩 파일에서 OpenSSL 신뢰 인증서를 수동으로 만들어야 하는 경우, openssl
명령에 trust 인수를 추가하고 새 인증서를 만들어야 합니다. 예를 들어 CAcert 루트를 사용하여 세 가지 역할을 모두 신뢰하려는 경우, 다음 명령은 적절한 OpenSSL 신뢰 인증서를 만듭니다(Wget-1.21.4를 설치한 후 root
사용자로 실행).
wget http://www.cacert.org/certs/root.crt &&
wget http://www.cacert.org/certs/class3.crt &&
openssl x509 -in root.crt -text -fingerprint -setalias "CAcert Class 1 root" \
-addtrust serverAuth -addtrust emailProtection -addtrust codeSigning \
> /etc/ssl/local/CAcert_Class_1_root.pem &&
openssl x509 -in class3.crt -text -fingerprint -setalias "CAcert Class 3 root" \
-addtrust serverAuth -addtrust emailProtection -addtrust codeSigning \
> /etc/ssl/local/CAcert_Class_3_root.pem &&
/usr/sbin/make-ca -r
Mozilla 신뢰 재정의
Mozilla가 특정 인증 기관을 포함하는 것에 동의하지 않는 경우가 있을 수 있습니다. 특정 CA의 기본 신뢰를 재정의하려면 /etc/ssl/local
에 다른 신뢰 인수를 사용하여 기존 인증서의 복사본을 만들면 됩니다. 예를 들어, “Makebelieve_CA_Root” 파일을 신뢰하지 않으려면 다음과 같이 실행합니다.
openssl x509 -in /etc/ssl/certs/Makebelieve_CA_Root.pem \
-text \
-fingerprint \
-setalias "Disabled Makebelieve CA Root" \
-addreject serverAuth \
-addreject emailProtection \
-addreject codeSigning \
> /etc/ssl/local/Disabled_Makebelieve_CA_Root.pem &&
/usr/sbin/make-ca
Python3에서 make-ca 사용
파이썬3가 LFS에 설치될 때 Certifi 모듈의 공급업체 인증서가 포함된 pip3 모듈이 포함되었습니다. 이는 필요한 것이었지만, 주로 가상 환경을 만들거나 모든 휠 종속성이 있는 모듈을 한 번에 설치할 때 pip3를 사용할 때마다 해당 인증서를 참조할 수 있다는 의미입니다.
일반적으로 시스템 관리자가 어떤 인증서를 사용할 수 있는지는 시스템 관리자가 지정해야 합니다. 이제
make-ca-1.13 및 p11-kit-0.25.3이 설치되고 make-ca가 설정 되었으므로 pip3
가 시스템 인증서를 사용하도록 할 수 있습니다.
LFS에 설치된 공급업체 인증서는 Certifi 모듈이 생성될 때 획득한 인증서의 스냅샷입니다. 시스템 인증서를 정기적으로 업데이트하면 공급업체 버전이 구식이 됩니다.
Python3에서 시스템 인증서를 사용하려면 _PIP_STANDALONE_CERT가 시스템 인증서를 가리키도록 설정해야 합니다(예: bash shell에서 실행).
export _PIP_STANDALONE_CERT=/etc/pki/tls/certs/ca-bundle.crt
경고
예를 들어 모듈을 테스트할 때 가상 환경을 만들었고 ~/.local/lib/python3.11/에 요청 및 인증 모듈이 포함된 경우, 로컬 모듈을 제거하지 않는 한 시스템 인증서 대신 해당 로컬 모듈이 사용됩니다.
Python3에서 시스템 인증서를 BLFS 프로필과 함께 사용하려면 시스템 또는 개인 프로필에 다음 변수를 추가합니다.
mkdir -pv /etc/profile.d &&
cat > /etc/profile.d/pythoncerts.sh << "EOF"
# Begin /etc/profile.d/pythoncerts.sh
export _PIP_STANDALONE_CERT=/etc/pki/tls/certs/ca-bundle.crt
# End /etc/profile.d/pythoncerts.sh
EOF
내용
- 설치된 프로그램
make-ca - 설치된 디렉토리
/etc/ssl/{certs,local} and /etc/pki/{nssdb,anchors,tls/{certs,java}}
간략한 설명
- make-ca
현재 버전의 certdata.txt를 적용하고 시스템 신뢰 저장소로 사용할 수 있도록 준비하는 셸 스크립트입니다.