OpenSSL로 자체 서명된 인증서를 만드는 방법

OpenSSL로 자체 서명된 인증서를 만드는 방법
당신과 같은 독자는 MUO를 지원하는 데 도움이 됩니다. 귀하가 당사 사이트의 링크를 사용하여 구매하면 당사는 제휴 수수료를 받을 수 있습니다. 자세히 알아보기

SSL/TLS 인증서는 웹 애플리케이션 또는 서버 보안에 필수적입니다. 여러 신뢰할 수 있는 인증 기관에서 유료로 SSL/TLS 인증서를 제공하지만 OpenSSL을 사용하여 자체 서명된 인증서를 생성하는 것도 가능합니다. 자체 서명된 인증서는 신뢰할 수 있는 기관의 승인이 부족하더라도 여전히 웹 트래픽을 암호화할 수 있습니다. 그렇다면 OpenSSL을 사용하여 웹사이트 또는 서버용 자체 서명 인증서를 생성하려면 어떻게 해야 할까요?





오늘의 메이크업 비디오 콘텐츠를 계속하려면 스크롤하세요.

OpenSSL 설치 방법

OpenSSL은 오픈 소스 소프트웨어입니다. 그러나 프로그래밍 배경이 없고 ​​빌드 프로세스가 걱정되는 경우 약간의 기술 설정이 있습니다. 이를 방지하기 위해 다음에서 완전히 컴파일되고 설치할 준비가 된 최신 버전의 OpenSSL 코드를 다운로드할 수 있습니다. slproweb의 사이트 .





여기에서 시스템에 적합한 최신 OpenSSL 버전의 MSI 확장을 선택합니다.





  OpenSSL 다운로드용 slproweb 웹 사이트의 스크린샷

예를 들어 다음에서 OpenSSL을 고려하십시오. D:\OpenSSL-Win64 . 변경할 수 있습니다. 설치가 완료되면, 관리자 권한으로 PowerShell 열기 이름이 지정된 하위 폴더로 이동합니다. 큰 상자 OpenSSL을 설치한 폴더에서. 이렇게 하려면 다음 명령을 사용합니다.

 cd 'D:\OpenSSL-Win64\bin' 

이제 다음 항목에 액세스할 수 있습니다. openssl.exe 원하는대로 실행할 수 있습니다.



  openssl이 설치되어 있는지 확인하기 위해 version 명령 실행

OpenSSL로 개인 키 생성

자체 서명된 인증서를 만들려면 개인 키가 필요합니다. 동일한 bin 폴더에서 관리자로 열면 PowerShell에서 다음 명령을 입력하여 이 개인 키를 생성할 수 있습니다.

 openssl.exe genrsa -des3 -out myPrivateKey.key 2048 

이 명령은 OpenSSL을 통해 2048비트 길이의 3DES 암호화 RSA 개인 키를 생성합니다. OpenSSL은 암호를 입력하라는 메시지를 표시합니다. 당신은 강력하고 기억하기 쉬운 암호 . 동일한 비밀번호를 두 번 입력하면 RSA 개인 키가 성공적으로 생성됩니다.





  RSA 키를 생성하는 데 사용되는 명령의 출력

이름으로 개인 RSA 키를 찾을 수 있습니다. myPrivateKey.키 .

OpenSSL로 CSR 파일을 만드는 방법

생성한 개인 키는 그 자체로는 충분하지 않습니다. 또한 자체 서명된 인증서를 만들려면 CSR 파일이 필요합니다. 이 CSR 파일을 만들려면 PowerShell에서 새 명령을 입력해야 합니다.





 openssl.exe req -new -key myPrivateKey.key -out myCertRequest.csr 

OpenSSL은 여기에서 개인 키를 생성하기 위해 입력한 비밀번호도 묻습니다. 추가로 귀하의 법적 및 개인 정보를 요청합니다. 이 정보를 올바르게 입력했는지 주의하십시오.

amazon 패키지에 배송됨이라고 표시되지만 그렇지 않은 경우 수행할 작업
  CSR 파일을 생성하는 데 사용된 명령의 출력

또한 지금까지의 모든 작업을 하나의 명령줄로 수행할 수 있습니다. 아래 명령어를 사용하면 개인 RSA 키와 CSR 파일을 동시에 생성할 수 있습니다.

 openssl.exe req -new -newkey rsa:2048 -nodes -keyout myPrivateKey2.key -out myCertRequest2.csr 
  한 번에 RSA 및 CSR 파일을 생성하는 데 사용되는 명령 출력

이제 이름이 지정된 파일을 볼 수 있습니다. myCertRequest.csr 관련 디렉토리에서. 생성한 이 CSR 파일에는 다음에 대한 몇 가지 정보가 포함되어 있습니다.

  • 인증서를 요청하는 기관입니다.
  • 일반 이름(예: 도메인 이름).
  • 공개 키(암호화 목적).

생성한 CSR 파일은 특정 기관의 검토 및 승인을 받아야 합니다. 이를 위해서는 CSR 파일을 인증 기관이나 다른 중개 기관에 직접 보내야 합니다.

이러한 기관 및 중개소는 원하는 인증서의 특성에 따라 귀하가 제공한 정보가 올바른지 여부를 검사합니다. 정보가 올바른지 확인하기 위해 일부 문서를 오프라인(팩스, 우편 등)으로 보내야 할 수도 있습니다.

인증 기관의 인증서 준비

생성한 CSR 파일을 유효한 인증 기관에 보내면 인증 기관에서 파일에 서명을 하고 인증서를 요청 기관이나 사람에게 보냅니다. 이렇게 하면 인증 기관(CA라고도 함)도 CSR 및 RSA 파일에서 PEM 파일을 만듭니다. PEM 파일은 자체 서명된 인증서에 필요한 마지막 파일입니다. 이러한 단계는 SSL 인증서는 체계적이고 안정적이며 안전합니다. .

OpenSSL을 사용하여 PEM 파일을 직접 만들 수도 있습니다. 그러나 이는 인증서의 진위 또는 유효성이 명확하지 않기 때문에 인증서의 보안에 잠재적인 위험을 초래할 수 있습니다. 또한 인증서를 확인할 수 없다는 사실로 인해 일부 응용 프로그램 및 환경에서 작동하지 않을 수 있습니다. 따라서 자체 서명된 인증서의 이 예에서는 가짜 PEM 파일을 사용할 수 있지만 물론 실제 사용에서는 불가능합니다.

지금은 이름이 지정된 PEM 파일을 상상해보십시오. myPemKey.pem 공식 인증 기관에서 제공됩니다. 다음 명령을 사용하여 PEM 파일을 직접 만들 수 있습니다.

 openssl x509 -req -sha256 -days 365 -in myCertRequest.csr -signkey myPrivateKey.key -out myPemKey.pem 

이러한 파일이 있는 경우 자체 서명된 인증서에 사용해야 하는 명령은 다음과 같습니다.

Windows 부팅 관리자 편집 Windows 10
 openssl.exe x509 -req -days 365 -in myCertRequest.csr -signkey myPemKey.pem -out mySelfSignedCert.cer 

이 명령은 CSR 파일이 이름이 지정된 개인 키로 서명되었음을 의미합니다. myPemKey.pem , 365일 동안 유효합니다. 결과적으로 이름이 지정된 인증서 파일을 생성합니다. mySelfSignedCert.cer .

  자체 서명된 인증서가 폴더에 존재하는 이미지

자체 서명된 인증서 정보

다음 명령을 사용하여 생성한 자체 서명된 인증서에 대한 정보를 확인할 수 있습니다.

 openssl.exe x509 -noout -text -in mySelfSignedCert.cer 

그러면 인증서에 포함된 모든 정보가 표시됩니다. 인증서에 사용된 회사나 개인정보, 알고리즘 등 많은 정보를 볼 수 있습니다.

자체 서명된 인증서가 인증 기관에서 서명되지 않은 경우 어떻게 됩니까?

생성한 자체 서명된 인증서를 감사하고 이것이 안전한지 확인하는 것이 중요합니다. 타사 인증서 공급자(즉, CA)가 일반적으로 이 작업을 수행합니다. 타사 인증 기관에서 서명하고 승인한 인증서가 없는 경우 이 승인되지 않은 인증서를 사용하면 몇 가지 보안 문제가 발생합니다.

예를 들어 해커는 자체 서명된 인증서를 사용하여 웹 사이트의 가짜 복사본을 만들 수 있습니다. 이를 통해 공격자는 사용자의 정보를 훔칠 수 있습니다. 또한 사용자의 사용자 이름, 비밀번호 또는 기타 민감한 정보를 확보할 수 있습니다.

사용자의 보안을 보장하기 위해 웹 사이트 및 기타 서비스는 일반적으로 CA에서 실제로 인증한 인증서를 사용해야 합니다. 이것은 사용자의 데이터가 암호화되어 있고 올바른 서버에 연결되어 있다는 확신을 제공합니다.

Windows에서 자체 서명된 인증서 생성

보시다시피 OpenSSL을 사용하여 Windows에서 자체 서명된 인증서를 만드는 것은 매우 간단합니다. 그러나 인증 기관의 승인도 필요하다는 점을 명심하십시오.

그럼에도 불구하고 그러한 인증서를 만드는 것은 사용자의 보안을 중요하게 생각한다는 것을 보여줍니다. 즉, 사용자가 귀하, 귀하의 사이트 및 전체 브랜드를 더 신뢰하게 될 것입니다.