openssl genrsa -aes256 -out client.key 2048
openssl req -x509 -sha256 -new -key client.key -out client.csr
-x509: 이 옵션은 인증서 요청 (CSR)이 아닌 직접 자체 서명된 X.509 디지털 인증서를 생성하도록 OpenSSL에 지시합니다. 즉, 자체 서명된 인증서를 만듭니다.
-sha256: 인증서 서명에 SHA-256 해시 알고리즘을 사용합니다.
-new: 새로운 인증서를 생성하도록 OpenSSL에 지시합니다.
-key client.key: 앞서 생성한 RSA 개인 키 (client.key)를 사용하여 인증서를 생성합니다.
-out client.csr: 생성된 자체 서명된 인증서를 저장할 파일의 경로와 이름을 지정합니다. 위의 명령에서는 "client.csr"로 지정되었으므로 생성된 인증서는 "client.csr" 파일에 저장됩니다.
3.인증요청할 인증서 내용 변경
openssl x509 -sha256 -days 3652 -in client.csr -signkey client.key -out client.crt
openssl x509 명령은 OpenSSL을 사용하여 X.509 디지털 인증서를 생성하거나 변환하는 데 사용됩니다. 위의 명령은 주어진 CSR (Certificate Signing Request) 및 개인 키를 사용하여 X.509 디지털 인증서를 생성하는 데 사용됩니다. 각 옵션의 역할은 다음과 같습니다:
-sha256: 인증서 서명에 SHA-256 해시 알고리즘을 사용합니다.
-days 3652: 인증서의 유효 기간을 설정합니다. 위의 명령에서는 10년(3652일) 동안 유효한 인증서를 생성하도록 지정했습니다.
-in client.csr: CSR 파일 (client.csr)을 입력으로 사용하여 인증서를 생성합니다.
-signkey client.key: CSR에 서명하기 위해 사용할 개인 키를 지정합니다. 이 경우, client.key 파일에 있는 개인 키를 사용하여 CSR를 서명합니다.
-out client.crt: 생성된 X.509 디지털 인증서를 저장할 파일의 경로와 이름을 지정합니다. 위의 명령에서는 "client.crt"로 지정되었으므로 생성된 인증서는 "client.crt" 파일에 저장됩니다.
openssl pkcs12 -export -name clientcert -in client.crt -inkey client.key -out keystore.p12
keytool -importkeystore -destkeystore clientkeystore.jks -srckeystore keystore.p12 -srcstoretype pkcs12 -alias clientcert
keytool -import -noprompt -alias smgrca -keystore clienttruststore.jks -file SystemManagerCA.cacert.pem -storepass password(설정할 비밀번호)
keytool은 Java 키 및 인증서 관리 도구로, 주로 자바 키스토어 (Java Keystore) 파일을 만들고 관리하는 데 사용됩니다. 주어진 명령은 keytool을 사용하여 디지털 인증서를 자바 키스토어에 추가하는 예입니다. 각 옵션과 명령의 역할은 다음과 같습니다:
import: 인증서를 자바 키스토어로 가져오는 명령입니다.
-noprompt: 사용자에게 확인 메시지를 표시하지 않고 진행하는 옵션입니다.
-alias smgrca: 추가할 인증서의 별칭 (Alias)을 지정합니다. 이 별칭은 나중에 인증서를 식별하는 데 사용됩니다.
-keystore clienttruststore.jks: 사용할 자바 키스토어 파일의 경로와 이름을 지정합니다.
-file SystemManagerCA.cacert.pem: 가져올 디지털 인증서 파일의 경로와 이름을 지정합니다.
-storepass password: 자바 키스토어의 저장 암호를 지정합니다. 이 암호는 키스토어를 열 때 필요한 비밀번호입니다.
이 명령을 실행하면 SystemManagerCA.cacert.pem 파일에 포함된 디지털 인증서가 clienttruststore.jks 자바 키스토어 파일에 smgrca 별칭으로 추가됩니다. 이를 통해 해당 인증서를 신뢰할 수 있는 루트 CA로 사용할 수 있습니다. 이 인증서는 보통 웹 서버와의 안전한 통신 (HTTPS)에서 사용되거나 서버 및 클라이언트 간의 상호 인증에 활용됩니다.