OpenSSL을 사용하여 개인 키가 포함된 DER 형식의 자체 서명 인증서를 생성하는 방법은 무엇입니까?

OpenSSL을 사용하여 개인 키가 포함된 DER 형식의 자체 서명 인증서를 생성하는 방법은 무엇입니까?

제목에서 알 수 있듯이 :

OpenSSL을 사용하여 자체 서명된 인증서를 생성하는 방법체재개인 키가 포함되어 있습니다.? 이것이 가능한가?

인증서와 해당 개인 키를 PFX 형식 파일에 결합하는 방법을 설명하는 수많은 게시물을 찾았지만 이는 내가 원하는 것이 아닙니다.

배경:

실제로 이 인증서를 Windows 인증서 저장소로 가져와야 합니다. 하지만 여전히 Linux/OpenSSL을 사용하여 인증서/키를 생성하고 싶습니다.

먼저 PEM 형식으로 인증서를 생성한 다음 개인 키 파일(또한 PEM 형식)을 추가해 보았습니다. Windows 인증서 관리에서 파일을 가져올 수 있지만 개인 키가 없습니다. 인증서는 올바르게 표시되지만 개인 키가 없다고 주장합니다.

다음으로 인증서와 개인 키를 얻어 PFX 파일에 추가했습니다. 문제는 OpenSSL이 개인 키의 내보내기 비밀번호 없이 PFX 파일을 생성할 수 없다는 것입니다. Windows 인증서 관리에서는 PFX 파일(개인 키 포함)을 가져올 수 있지만 인증서를 사용해야 하는 서비스에서 모호한 오류 메시지와 함께 인증서 사용을 거부합니다. 이틀 동안 디버깅을 해봤지만 소용이 없었습니다. 내보내기 암호가 문제일 수 있습니다(Windows 인증서 하위 시스템에서는 인증서를 가져온 후 암호를 묻지 않을 것으로 예상하지만).

따라서 마지막 희망은 인증서와 개인 키가 포함된 DER 파일을 생성하는 것입니다. Windows 도구를 사용하여 이러한 파일을 생성할 수 있기 때문에 인증서와 개인 키를 DER 파일에 넣을 수 있다는 것을 알고 있습니다. 하지만 Linux/OpenSSL에서는 어떻게 해야 할까요?

나는 다양한 형식으로 동일한 인증서를 생성하기 위해 다음 스크립트와 같은 것을 사용하고 있습니다(이것은 현재 버전이며 수많은 변형을 시도했습니다).

#!/bin/bash

# Generate RSA key
openssl genrsa -out key.pem 4096

# Generate certificate request
openssl req -new -nodes -key key.pem -out csr.pem -subj /CN=DAX

# Generate self-signed certificate (sign the certificate request)
openssl req -x509 -nodes -sha256 -days 36500 -key key.pem -in csr.pem -out cert.pem

# Add some extensions ...
openssl x509 -extfile /etc/ssl/pp-openssl.cnf -sha256 -days 36500 -signkey key.pem -in cert.pem -out ext.pem

# Append private key to the PEM certificate
cat key.pem >> ext.pem

# Create PFX and DER formats
openssl pkcs12 -nodes -export -out cert.pfx -inkey key.pem -in ext.pem
openssl x509 -outform der -out cert.cer -in ext.pem

마지막 줄은 PEM 입력 파일에 포함되어 있더라도 개인 키를 분명히 제거합니다(DER 파일에 포함하지 않음).

고쳐 쓰다

Windows 도구를 사용하여 이러한 파일을 생성할 수 있기 때문에 인증서와 개인 키를 DER 파일에 넣을 수 있다는 것을 알고 있습니다.

위의 진술이 틀렸다는 것이 사실로 입증되었습니다. 테스트 결과를 잘못 이해했습니다. 아래 설명을 참조하세요. 요컨대,동일한 DER 파일에 인증서와 개인 키를 가질 수 없습니다..

그러나 나중에 참조할 수 있도록 원래 질문을 보관하고 있습니다.

관련 정보