시스템 관리자 및 개발자가 알아야 할 17가지 Keytool 명령 예

Keytool은 암호화 키 및 인증서를 관리/저장할 수 있는 명령줄 유틸리티입니다.

시스템에 Java가 설치되어 있는 경우 keytool 명령을 사용하여 CA 인증서를 가져오고, 인증서를 나열하고, 자체 서명된 인증서를 만들고, 암호 및 공개/개인 키를 저장하고, 더 많은 작업을 수행할 수 있습니다.

혼란스러운? 걱정하지 마세요. 읽으면서 쉽게 설명하겠습니다.

나는 Linux를 사용하여 명령을 테스트하고 예제를 통해 이에 대해 조금 더 설명합니다.

Windows 및 macOS에서도 Keytool 명령을 사용할 수 있습니다.

Keytool 명령이란 무엇입니까?

키 및 인증서 관리 유틸리티입니다. 이를 통해 일반적으로 서비스에 대한 액세스를 확인/인증하는 개인/공용 키 쌍을 저장할 수 있습니다.

이 기사의 제목을 보면 주로 시스템 관리자와 개발자가 사용하는 명령임을 짐작할 수 있습니다.

대부분의 경우 그렇습니다. 그러나 사용자는 keytool 명령을 사용하여 인증, 암호화 및 암호 해독 목적으로 암호 및 비밀 키를 저장할 수 있습니다. 따라서 궁금하신 분은 시스템에서 사용해 보시기 바랍니다.

암호화 키 개념을 처음 접하는 경우 keytool 명령을 시도하기 전에 데이터 암호화에 대한 기사를 확인하는 것이 좋습니다.

또한 OpenSSL 명령 예제를 확인하면 그것이 어떻게 다른지, 어떤 것을 사용할 수 있는지에 대한 아이디어를 얻을 수 있습니다.

  PowerPoint에서 세 번 접는 방법

자체 서명된 인증서 생성

keytool -genkeypair -alias <alias> -keypass <keypass> -validity <validity> -storepass <storepass>

구매한 SSL 인증서와 달리 자체 서명 인증서는 보안 연결을 사용하기 위한 개발/테스트 목적으로만 사용됩니다.

위에서 언급한 keytool 명령 구문을 사용하여 하나를 생성할 수 있습니다. 예를 들어 다음과 같습니다.

keytool -genkeypair -alias koreantech.org -keypass passforkeystore -validity 365 -storepass passforkeystore

별칭에는 아무 이름이나 사용할 수 있습니다. koreantech.org를 자리 표시자 텍스트로 사용합니다. 유효성을 사용자 지정하고 위 명령에서 “passforkeystore”를 대체하는 키 저장소의 암호를 지정할 수 있습니다.

PKCS12 키 저장소에는 하나의 암호만 지원됩니다. 그러나 Java 전용이 아닌 편리한 키 저장소 유형입니다.

키 저장소와 인증서에 대해 서로 다른 두 개의 암호가 필요한 경우 다른 인터페이스를 사용하도록 keytool 명령에 명시적으로 지시할 수 있습니다.

자세한 내용은 공식 문서에서 확인할 수 있습니다.

생성을 진행하면 진위 여부에 대한 추가 세부 정보를 요청합니다. 다음과 같이 표시됩니다.

What is your first and last name?
  [Unknown]:  Ankush
What is the name of your organizational unit?
  [Unknown]:  koreantech.org
What is the name of your organization?
  [Unknown]:  koreantech.org
What is the name of your City or Locality?
  [Unknown]:  Bhubaneswar
What is the name of your State or Province?
  [Unknown]:  Odisha
What is the two-letter country code for this unit?
  [Unknown]:  91
Is CN=Ankush, OU=koreantech.org, O=koreantech.org, L=Bhubaneswar, ST=Odisha, C=91 correct?
  [no]:  yes

Java 키 저장소 및 키 쌍 생성

keytool -genkeypair -keyalg RSA -keysize 2048 -keystore keystore.jks -alias geekflarejava -validity 3650

Java 키 저장소 생성 및 인증서 가져오기

유효한 인증서가 있거나 이전에 인증서를 생성했는지 확인하십시오. 완료되면 가져오고 Java Keystore를 생성할 수 있습니다.

keytool -importcert -file test.crt -keystore truststore.jks -alias koreantech.org

제목이 있는 기본 키 저장소에 대한 키 쌍 생성

다음 명령을 사용하여 키 쌍(예: “ca”라는 이름으로)을 빠르게 생성할 수 있습니다.

keytool -alias ca -dname CN=CA -genkeypair

서명된 인증서 체인 만들기

ca 및 ca1의 키 쌍을 만들었다고 가정합니다. 다음 명령을 사용하여 ca가 ca1에 서명하는 서명된 인증서 체인을 만들 수 있습니다.

keytool -alias ca1 -certreq
keytool -alias ca -gencert -ext san=dns:ca1
keytool -alias ca1 -importcert

두 개의 키 쌍 ca1과 ca2를 더 사용하여 체인을 완성할 수 있습니다. 여기서 ca1은 ca2에 서명합니다.

  분석용 데이터 형식을 지정하는 5가지 최고의 데이터 랭글링 도구

인증서 가져오기

사용 가능한 파일에서 인증서를 가져오려는 경우 수행할 수 있는 작업은 다음과 같습니다.

keystool -import -alias koreantech.org -file geekflareserver.cer

기존 키 저장소에 대한 인증서 서명 요청(CSR) 생성

이미 Keystore를 생성했다면 CSR을 생성할 수 있습니다.

keytool -certreq -keyalg rsa -keystore keystore.jks -alias server -file koreantech.org.csr

Java 키 저장소에 저장된 인증서 나열

키 저장소에는 여러 인증서 항목이 있을 수 있습니다. “keystore.jks” 데이터베이스에서 인증서 목록을 확인한다고 가정하고 다음을 입력해야 합니다.

keytool -v -list -keystore keystore.jks

이에 대한 출력은 다음과 같습니다.

keytool -v -list -keystore keystore.jks
Enter keystore password:  
Keystore type: PKCS12
Keystore provider: SUN

Your keystore contains 2 entries

Alias name: geekflarecert
Creation date: 16-Nov-2022
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Ankush, OU=Geek, O=koreantech.org, L=Bhubaneswar, ST=od, C=91
Issuer: CN=Ankush, OU=Geek, O=koreantech.org, L=Bhubaneswar, ST=od, C=91
Serial number: a0b9a99
Valid from: Wed Nov 16 09:42:37 IST 2022 until: Sat Nov 13 09:42:37 IST 2032
Certificate fingerprints:
	 SHA1: 23:7C:65:A7:A6:84:18:F8:45:04:92:DF:D4:BB:0F:91:6D:A5:C5:BE
	 SHA256: C0:25:ED:B8:CF:1A:E6:E1:C5:75:A8:10:8F:CD:BE:42:26:96:9C:9A:FA:74:65:07:71:06:9A:2C:F5:80:FE:7F
Signature algorithm name: SHA256withRSA
Subject Public Key Algorithm: 2048-bit RSA key
Version: 3

단일 인증서의 내용 확인

이미 생성된 인증서가 있는 경우 다음을 사용하여 자세한 내용을 확인할 수 있습니다.

keytool -v -printcert -file server.crt

Java 키 저장소에서 인증서 보기

Keystore 데이터베이스의 모든 인증서를 나열할 수 있습니다. 명령은 다음과 같습니다.

keytool -v -list -keystore keystore.jks

별칭 및 키 저장소를 사용하여 키 저장소 보기

키 저장소를 만들 때 설정한 별칭 이름을 사용하여 키 저장소를 확인하려면 다음을 입력합니다.

keytool -v -list -keystore keystore.jks -alias geekflareserver

KeyStore의 인증서 나열

기본 Keystore에 저장된 인증서를 확인하려면 다음 명령을 사용하십시오.

keytool -list -storepass passforkeystore

“passforkeystore”를 설정한 암호로 바꿔야 합니다.

인증서 정보 보기

단일 인증서에 대한 세부 정보를 확인해야 하는 경우 keystone 데이터베이스를 지정하지 않고 해당 별칭을 사용할 수 있습니다.

  Google 포토에서 영구적으로 삭제된 파일을 복구하는 방법

다음과 같이 표시됩니다.

keytool -list -v -alias koreantech.org -storepass passforkeystore

PEM 형식의 인증서 보기

PEM은 인증서 및 암호화 키의 가장 일반적인 형식 중 하나입니다. PEM으로 인증서를 확인하려면 다음을 입력하십시오.

keytool -v -printcert -file koreantech.org.crt -rfc

Java 키 저장소 비밀번호 변경

Java Keystore에 대한 암호를 이미 생성한 경우 다음 명령을 사용하여 암호를 변경할 수 있습니다.

keytool -delete -alias koreantech.org -keystore keystore.jks

Java 키 저장소에서 인증서 삭제

Java Keystore 및 별칭을 지정하여 삭제할 수 있습니다. 예를 들어:

keytool -delete -alias koreantech.org -keystore keystore.jks

명령 탐색 및 도움 받기

이 명령에는 많은 작업을 수행하기 위한 여러 인수와 확장이 있습니다. 사용 사례에 따라 모두 사용해야 할 수도 있고 필요하지 않을 수도 있습니다.

따라서 명령 옵션에 대해 자세히 알고 싶다면 언제든지 다음을 입력할 수 있습니다.

keytool -help

두 경우 모두 Linux 터미널을 사용하는 경우 다음 명령으로 man(매뉴얼) 페이지를 읽는 것이 좋습니다.

man keytool

man 명령을 사용하면 keytool 명령에 대해 필요한 모든 세부 정보를 얻을 수 있습니다.

따라서 그것에 대해 배울 수 있는 모든 것을 배울 수 있는 초능력을 유지하십시오!

마무리

파일 경로 및 기타 사용자 지정 옵션은 사용하는 플랫폼과 약간 다를 수 있습니다. 표준화된 옵션에 대한 Oracle 문서도 참조할 수 있습니다.

Keytool은 다양한 작업을 위한 훌륭한 도구입니다. 그것을 시험해보고 당신이 그것으로 무엇을 할 수 있는지보십시오!

시스템을 최적으로 유지하고 유지하기 위해 일부 Linux 명령을 탐색할 수도 있습니다.