
내 도메인에 대한 기업 인증 기관을 설정하고 싶습니다. 그래서 다양한 목적으로 인증서를 발급할 수 있습니다. 오프라인 CA를 루트로 두고 엔터프라이즈 CA를 하위 CA로 설정하는 모범 사례를 따르고 싶습니다. 하지만 이 작업을 위해 Windows 전체 사본에 라이선스를 부여하는 것은 어리석은 것 같습니다.
내가 할 수 있기를 바라는 것은 USB 플래시 디스크에 라이브 배포판을 설치한 다음 openssl을 설치하고 플래시 드라이브에 CA를 설정하는 것입니다. 루트 키/인증서를 만들 준비가 되면 네트워크에서 컴퓨터 연결을 끊고 네트워크에 연결된 컴퓨터에서 해당 USB 디스크를 다시는 사용하지 않습니다.
사용할 수 있는 Windows 엔터프라이즈 CA에 대한 하위 CA 인증서를 올바르게 서명하고 생성할 수 있습니까? CA를 구축하고 하위 CA 인증서에 올바르게 서명하려면 OpenSSL과 함께 어떤 옵션을 사용해야 합니까?
웹에서 검색을 해보았더니,이것그 주제에 관해 내가 찾을 수 있는 유일한 것은 그것이었습니다. 하지만 그것은 2008년 이전의 일이고, 그 사람이 모두 성공했는지는 완전히 확신할 수 없습니다.
답변1
네, 잘 작동합니다. Windows 인증 기관은 Windows가 아닌 루트의 하위 기관으로 실행되는 것에 대해 아무런 불만이 없습니다.
엔터프라이즈 모드에서 OpenSSL 루트 및 Windows 2008 R2 하위로 테스트되었습니다.
OpenSSL 구성에서 MS CA가 기대하는 것과 잘 어울리는 몇 가지 사항:
유효한 AIA 및 CDP 위치는 자체 서명된 루트에 대한 섹션
x509_extensions
의 속성 으로 구성된 섹션의 루트 인증서에 적용되어야 합니다 .[req]
다음과 같은 내용이 있습니다.authorityInfoAccess = caIssuers;URI:http://test-rootca.test.local/root.pem crlDistributionPoints = URI:http://test-rootca.test.local/root.crl
특정 OpenSSL 구성은 기본적으로 하위 CA를 허용하지 않을 수 있습니다. 서명된 요청에 대해 이를 변경합니다(물론 CA가 아니어야 하는 요청에 대해서는 이것이 제 위치에 있지 않은지 확인하십시오). 이는 섹션
x509_extensions
의 속성 으로 구성된 섹션에 있습니다[ca]
.basicConstraints=CA:TRUE certificatePolicies=2.5.29.32.0
따라서 테스트를 위해 CA를 수행하겠습니다.
루트를 만드세요:
openssl req -new -x509 -keyout /etc/ssl/private/root.key -out /etc/ssl/certs/root.pem -nodes -extensions v3_ca
[ca]
구성을 조정하고 OpenSSL 구성 섹션 에 필요한 파일과 디렉터리를 만듭니다 .
Microsoft 측의 업무를 진행하기 위한 모든 준비가 완료되었습니다. 수동 서명을 사용하여 Windows 하위 CA를 만듭니다.
OpenSSL 서버에 인증서 요청을 업로드합니다. 그 동안 루트 인증서를 다운로드하세요. 사용자가 아닌 컴퓨터의 신뢰할 수 있는 루트 저장소로 가져오세요!
하위 인증서를 발급합니다.
openssl ca -in test-subca.req
(you might need to specify a permissive policy manually with -policy, check your config)
그래도 작동하지 않으면 CA에 새 인증서 디렉터리, 인덱스 파일, 직렬 파일 등 구성에 문제가 있을 수 있습니다. 오류 메시지를 확인하세요.
갔다면 그게 다입니다. 그렇지 않은 경우 CRL을 만들어 위에서 구성한 CDP에 넣습니다. 방금 Apache를 설치하고 웹루트에 걸렸습니다.
openssl ca -gencrl -out /var/www/root.crl
아직 인증서가 없으면 AIA 위치에 인증서를 넣으세요.
cp /etc/ssl/certs/root.pem /var/www/root.pem
새로 발급된 하위 인증서를 다운로드하고 인증 기관 MMC 스냅인을 사용하여 CA에 설치합니다. 신뢰나 검증과 관련된 모든 문제에 대해 불만을 표시하지만 이를 받아들이는 데 도덕적인 반대는 없습니다.
최종 결과; Enterprise PKI 스냅인에서 불평 없이 작동하는 Windows CA이며 OpenSSL Generated Certificate
속성에 대한 정보가 있습니다.
답변2
나는 당신이 무엇을 얻고 있는지 알지만 OpenSSL이 작업에 적합한 도구라고 생각하지 않습니다. 당신은보고 싶을 수도 있습니다오픈소스 인증 기관 프로젝트~와 같은EJBCAOpenSSL보다 이 기능에 더 중점을 두고 있으며 사용할 수 있는 특정 문서가 있습니다.
당신이 하고 있는 일은 하위 CA의 인증서에 서명하는 것뿐이므로 이 개념이 작동하지 않는 이유를 알 수 없습니다. 이 작업을 수행하기 위해 공용 CA에 비용을 지불하는 경우 해당 CA가 어떤 종류의 서버를 사용하고 있는지 반드시 알거나 신경 쓰지 않을 것입니다.
당신이 관심을 가져야 할 것은 다음과 같습니다:
- 하위 사용자가 생성한 CSR의 인증서에 서명할 수 있습니다.
- 결과는 하위 자체에 설치될 수 있습니다.
- 대상으로 삼는 모든 클라이언트에 신뢰할 수 있는 것으로 설치할 수 있는 루트 서명 인증서가 있습니다.
- 어딘가에 제공되는 해지 목록을 생성할 수 있습니다.
이 작업을 완료했다고 말할 수는 없지만 Windows 상자에서 CSR을 생성하기 위한 문서를 따른 다음 CSR에서 .p7k 인증서를 생성하기 위한 CA 문서를 따르면 괜찮을 것입니다.
그건 그렇고 - 부팅 디스크가 아닌 Hyper-V 또는 VMware와 같은 널리 사용되는 하이퍼바이저용 가상 머신으로 CA를 생성하고 후임자가 찾을 수 있는 곳에 매우 안전하게 저장하고 회전시키는 것이 좋습니다. 정기적으로 오프라인으로 전환하여 실행을 확인하거나 새로운 미디어/기술로 전송합니다. 루트 CA의 수명은 10년 또는 20년입니다.