Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
(연관된 글이 2개 있습니다.)

openssl - 윈도우 환경의 명령행에서 SAN 적용하는 방법

방법은 아래의 글에 잘 나옵니다.

Provide subjectAltName to openssl directly on the command line
; https://security.stackexchange.com/questions/74345/provide-subjectaltname-to-openssl-directly-on-the-command-line

-config 옵션을 이용해 conf 파일로 subjectAltName을 적용하는 방법은 이미 저도 설명한 적이 있습니다.

openssl - CA로부터 인증받은 새로운 인증서를 생성하는 방법
; https://www.sysnet.pe.kr/2/0/12570#san

반면, 순수하게 명령행을 이용하는 것으로는 'addext' 옵션이 있다고 하는데요,

openssl req -key win10en.key -new -out win10en.csr -subj "/CN=win10en" -addext "subjectAltName=DNS:win10en"

실제로 위의 csr 파일을 crt 인증서로 만들었을 때, 윈도우의 인증서 정보 창으로는 "Subject Alternative Name" 항목이 없습니다. 참고로 addext 옵션은 openssl 1.1.1 버전 이후부터 지원한다고 하는데,

c:\temp> openssl version
OpenSSL 3.0.7 1 Nov 2022 (Library: OpenSSL 3.0.7 1 Nov 2022)

제가 사용하는 것은 "3.0.7"임에도 안 되고 있습니다. (윈도우 버전의 openssl에 문제일까요? ^^;)

어쩔 수 없이 외부 파일을 도입해야 합니다. 일단 -config 파일까지는 아니더라도 간단하게 -extfile 옵션으로 처리하는 방법 정도가 최선일 듯합니다. 따라서, CSR 파일 생성 단계가 아닌 CA 인증서로 서명할 때 다음과 같이 -extfile을 이용해 subjectAltName을 지정할 수 있습니다.

c:\temp> type ssl_conf.txt
subjectAltName=DNS:win10en

c:\temp> openssl x509 -req -days 3650 -in win10en.csr ...[생략]... -out win10en.crt -extfile ssl_conf.txt

이렇게 해서 생성한 CRT 파일을 보면 Subject Alternative Name 항목이 정확하게 나옵니다. ^^

openssl_san_option_1.png




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]

[연관 글]






[최초 등록일: ]
[최종 수정일: 1/29/2023]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




[1]  2  3  4  5  6  7  8  9  10  11  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
13296정성태3/25/202346Windows: 234. IsDialogMessage와 협업하는 WM_GETDLGCODE Win32 메시지파일 다운로드1
13295정성태3/24/202351Windows: 233. Win32 - modeless 대화창을 modal처럼 동작하게 만드는 방법파일 다운로드1
13294정성태3/22/202394.NET Framework: 2105. LargeAddressAware 옵션이 적용된 닷넷 32비트 프로세스의 가용 메모리 - 두 번째
13293정성태3/22/202383오류 유형: 853. dumpbin - warning LNK4048: Invalid format file; ignored
13292정성태3/21/2023101Windows: 232. C/C++ - 일반 창에도 사용 가능한 IsDialogMessage파일 다운로드1
13291정성태3/20/2023117.NET Framework: 2104. C# Windows Forms - WndProc 재정의와 IMessageFilter 사용 시의 차이점
13290정성태3/19/2023169.NET Framework: 2103. C# - 윈도우에서 기본 제공하는 FindText 대화창 사용법파일 다운로드1
13289정성태3/18/202379Windows: 231. Win32 - 대화창 템플릿의 2진 리소스를 읽어들여 자식 윈도우를 생성하는 방법파일 다운로드1
13288정성태3/17/202388Windows: 230. Win32 - 대화창의 DLU 단위를 pixel로 변경하는 방법파일 다운로드1
13287정성태3/16/202387Windows: 229. Win32 - 대화창 템플릿의 2진 리소스를 읽어들여 윈도우를 직접 띄우는 방법파일 다운로드1
13286정성태3/15/2023133Windows: 228. Win32 - 리소스에 포함된 대화창 Template의 2진 코드 해석 방법
13285정성태3/14/2023128Windows: 227. Win32 C/C++ - Dialog Procedure를 재정의하는 방법파일 다운로드1
13284정성태3/13/2023131Windows: 226. Win32 C/C++ - Dialog에서 값을 반환하는 방법파일 다운로드1
13283정성태3/12/202389오류 유형: 852. 파이썬 - TypeError: coercing to Unicode: need string or buffer, NoneType found
13282정성태3/12/2023111Linux: 58. WSL - nohup 옵션이 필요한 경우
13281정성태3/12/2023151Windows: 225. 윈도우 바탕화면의 아이콘들이 넓게 퍼지는 경우 [2]
13280정성태3/9/2023159개발 환경 구성: 670. WSL 2에서 호스팅 중인 TCP 서버를 외부에서 접근하는 방법
13279정성태3/9/202398오류 유형: 851. 파이썬 ModuleNotFoundError: No module named '_cffi_backend'
13278정성태3/8/2023132개발 환경 구성: 669. WSL 2의 (init이 아닌) systemd 지원
13277정성태3/6/2023153개발 환경 구성: 668. 코드 사인용 인증서 신청 및 적용 방법(예: Digicert)
13276정성태3/5/2023215.NET Framework: 2102. C# 11 - ref struct/ref field를 위해 새롭게 도입된 scoped 예약어
13275정성태3/3/2023211.NET Framework: 2101. C# 11의 ref 필드 설명
13274정성태3/2/2023220.NET Framework: 2100. C# - ref 필드로 ref struct 타입을 허용하지 않는 이유
13273정성태2/28/2023249.NET Framework: 2099. C# - 관리 포인터로서의 ref 예약어 의미
13272정성태2/27/2023174오류 유형: 850. SSMS - mdf 파일을 Attach 시킬 때 Operating system error 5: "5(Access is denied.)" 에러
[1]  2  3  4  5  6  7  8  9  10  11  12  13  14  15  ...