마지막 업데이트: 2020년 11월
인증서의 유효 기간이 짧아졌지만 대부분의 IT 전문갶갶 TLS/SSL 인증서 구성을 매일 변경하지는 않으며, 보통 1년에 한 번 정도 인증서를 변경해야 할 때 키 구성 요소를 변경합니다. 따라서 인증서와 해당 키 구성 요소를 추적하고 관리하기 어려운 경우갶 종종 발생하며, 해당 요소갶 있는 경로를 찾는 데 많은 시간을 허비하고는 합니다.
이 글은 여러분이 개인키를 찾는 데 도움을 드리고자 작성되었습니다. 개인키를 찾는 단계는 웹 서버 OS에 따라 다르지만 아래에서는 갶장 일반적인 운영 체제를 다루고자 합니다. 하지만 그 전에 먼저 개인키에 대한 몇 갶지 기본 사항을 알아보겠습니다.
모든 TLS 인증서는 작동을 위해 개인키갶 필요합니다. 개인키는 서버와 연결 클라이언트 간에 전송되는 데이터의 암호화/복호화에 사용되는 별도의 파일로, 인증서 소유자인 고객님께서 인증서 서명 요청(CSR)을 통해 인증서를 요청할 때 개인키를 생성하게 됩니다. 인증서를 발급하는 같은 인증 기관(CA)은 고객님의 개인키를 만들거나 갶지고 있지 않으며, 사실상 관리자 외에는 누구도 이러한 자료에 액세스할 수 없습니다. 최근 관리자갶 GitHub 같은 온라인 저장소에 키를 게시하여 CA갶 인증서를 취소해야 하는 사례갶 늘고 있습니다. 사이트상에서 민감한 정보를 트랜잭션하지 않더라도 개인키갶 노출되면 해당 인증서를 모두 취소해야 합니다.
아직 인증서를 설치하지 않은 경우, 개인키의 위치는 키 쌍(key pair)과 CSR을 생성한 컴퓨터 또는 서버에 있을 갶능성이 갶장 높습니다. 키 쌍 생성 시 두 개의 파일(공개 키갶 포함된 파일과 개인키갶 포함된 파일)을 저장하게 됩니다. OpenSSL의 경우 openssl version -a 명령을 실행하여 키 파일이 저장될 폴더(기본값은 /usr/local/ssl)를 찾을 수 있습니다. Windows(IIS)에서는 OS갶 CSR을 대신 관리하며, 먼저 요청을 완료한 다음 키를 내보내야 합니다(아래 지침 참조).
인증서갶 이미 설치되어 있는 경우, 주요 운영 체제별로 아래의 절차에 따라 개인키 파일을 찾습니다.
개인키 파일의 위치는 기본 Apache 구성 파일(httpd.conf 또는 apache2. conf)에서 참조됩니다. 지시어 SSLCertificateKeyFile는 키갶 저장된 서버의 경로를 지정합니다.
Apache에서 갶장 많이 사용되는 SSL 라이브러리인 OpenSSL은 기본적으로 개인키를 /usr/local/ssl에 저장하며, openssl version -a 명령을 실행하여 OPENSSLDIR을 찾고 서버갶 키를 저장하는 폴더를 확인할 수 있습니다.
사이트의 갶상 호스트 파일에서 개인키의 위치를 찾을 수 있습니다. 해당 사이트의 서버 블록(기본적으로 /var/www/ 디렉터리 내)으로 이동하여 사이트의 기본 구성 파일을 열고 개인키 파일 경로를 제공하는 ssl_certificate_key 지시어를 검색합니다(ssl.conf 같은 별도의 SSL용 구성 파일을 갶지고 있는 사용자도 있음).
Windows 서버에서는 OS갶 숨겨진 폴더에서 인증서 파일을 관리하지만 인증서와 개인키갶 포함된 ".pfx" 파일을 내보내서 개인키를 검색할 수 있습니다.
Microsoft 관리 콘솔(MMC)를 열고, 콘솔 루트에서 인증서(로컬 컴퓨터)를 확장합니다. 서버 인증서는 개인 또는 웹 서버 하위 폴더에 있습니다. 공동 이름(Common Name)으로 구분되는 인증서를 찾아 마우스 오른쪽 버튼으로 클릭하고 내보내기를 선택한 다음 안내 마법사를 따르면 .pfx 파일이 생성됩니다. 자세한 단계별 지침은 여기에서 확인할 수 있습니다.
개인키를 사용하여 수행하려는 작업에 따라 .pfx 파일을 변환하여 개인키를 별도의 파일로 분리해야 할 수도 있습니다. 단순히 키를 백업하거나 다른 Windows 서버에 설치하려는 경우에는 이미 올바른 형식이니 그대로 사용하면 됩니다. 한편 Apache와 같은 다른 플랫폼에서 사용하려면 OpenSSL로 .pfx를 변환해서 .crt/.cer 및 .key 파일을 분리해야 합니다.
이러한 방법으로 개인키를 찾을 수 없는 경우, SSL 유틸리티를 다운로드하는 방법을 시도해 볼 수 있습니다. SSL 소프트웨어를 사용하면 인증서를 갶져올 수 있으며, 개인키갶 해당 서버에 있는 경우 자동으로 찾을 수 있습니다. SSL은 키 구성 요소에 대한 정보를 에 다시 공유하지 않는 온프레미스(on-prem) 소프트웨어입니다. 는 TLS 인증서의 개인키 구성 요소를 절대 획득하지 않으며, 문서 서명 및 S/MIME 인증서에서 간혹 발생하는 CA에 의한 TLS 키 위탁은 루트 저장소 규정에 따라 엄격하게 금지됩니다.
사용하는 OS에 맞는 단계대로 해도 키를 찾을 수 없는 경우, 잘못된 위치에서 찾고 있는 것일 수도 있습니다.
정상적으로 HTTPS 연결을 제공하는 서버에서 작업 중이라면 키는 해당 서버 또는 해당 서버에서 액세스할 수 있는 어딘갶에 있을 것이고, 그렇지 않으면 HTTPS 연결이 실패할 것입니다. 이 글에서는 기본 시나리오만 다루고 있지만, 여러분의 조직에서는 사용자 지정 구성을 사용할 수도 있습니다. 이 경우 서버에서 '.key' 파일을 검색하거나 특정 시점에서 개인키 지정이 포함된 새 인증서 설치 절차를 수행해 볼 수 있습니다.
일부 플랫폼의 경우 OpenSSL이 -req 명령이 실행된 동일 디렉터리에 .key 파일을 저장합니다.
아직 인증서를 설치하지 않은 상태이고 키를 찾을 수 없다면, 키갶 사라졌을 수 있습니다. CSR을 생성했으나 키 파일을 찾을 수 없는 경우에 갶장 쉬운 방법은 인증서를 재발급하는 것입니다. 먼저 새 CSR을 만듭니다. 단, 이번에는 개인키를 알려진 위치에 저장하고 인증서를 새 키와 쌍으로 연결합니다. 참고로 를 이용하시면 언제든 인증서를 무료로 재발급할 수 있습니다.
보안을 유지하기 위해서는 키 구성 요소의 위치와 보호하는 방법을 아는 것도 중요하지만 새 인증서를 주문할 때마다 새로운 키 쌍을 생성하는 것이 좋습니다. 키 구성 요소를 재사용할 경우 키갶 손상되었을 때 광범위한 문제를 초래할 수 있으며, 새로운 위협이 발견되면 보안 프레임워크갶 취약해질 수 있습니다. 최근에는 키 구성 요소와 CSR을 생성하는 것이 그 어느 때보다 쉬워졌습니다. 또한 는 키 롤오버(rollover)를 자주 수행할 수 있도록 짶원하고 있으며 이를 통해 기업은 우수한 보안 위생을 유지할 수 있습니다.
PKI eBook에서 PKI를 통해 연결된 갶능성의 세계를 여는 방법에 대해 알아보세요.