OHS orapki

akanana·2022년 6월 27일
0

출처 : https://syhwang.tistory.com/85

테스트 SSL 생성


history

테스트 환경 : Oracle HTTP Server 12.1.3

# 키 저장소 및 지갑 생성
orapki wallet create -wallet ./mywallet -compat_v12 -auto_login_only
Oracle PKI Tool: 12.1.3.0.0 버전
Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved.

ls mywallet/
cwallet.sso  cwallet.sso.lck

orapki wallet add -wallet ./mywallet/ \
-dn 'CN=mydomain.or.kr, OU=DBS, O=DBS, L=Seoul, C=KR' \
-keysize 2048 -self_signed -sign_alg sha256 -asym_alg RSA \
-validity 365
Oracle PKI Tool: 12.1.3.0.0 버전
Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved.

# 
orapki wallet pkcs12_to_jks -wallet ./mywallet/ \
-jksKeyStoreLoc ./keystore.jks -jksKeyStorepwd kimsw001
Oracle PKI Tool: 12.1.3.0.0 버전
Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved.

# 적합한 cwallet.sso 및 keystore.jks 파일이 있는지 확인
orapki wallet display -wallet ./mywallet/
Oracle PKI Tool: 12.1.3.0.0 버전
Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved.

구문 분석

orapki wallet create

위에서 사용된 구문

orapki wallet create -wallet ./mywallet -compat_v12 -auto_login_only

실제 구문

create [-wallet [wallet]] [[-pwd <pwd>] [-auto_login|-auto_login_local]] | [-auto_login_only] [-with_trust_flags] [-compat_v12]

-auto_login : auto_login 활성화
-pwd : password 지정
-compat_v12 : 3DES 방식을 AES256 로 바꾼다.

orapki wallet add

위에서 사용된 구문

orapki wallet add -wallet ./mywallet/ \
-dn 'CN=mydomain.or.kr, OU=DBS, O=DBS, L=Seoul, C=KR' \
-keysize 2048 -self_signed -sign_alg sha256 -asym_alg RSA \
-validity 365

실제 구문

orapki add [-wallet [wallet]] <[-dn [dn]]> <-asym_alg [RSA|ECC]> \
<[-keysize [512|1024|2048|4096]] |[-eccurve [p192|p224|p256|p384|p521|k163|k233|k283|k409|k571|b163|b233|b283|b409|b571]]>
<-self_signed [-validity [days]] | [-valid_from [mm/dd/yyyy] -valid_until [mm/dd/yyyy]][-serial_file <file_loc>] | [-serial_num <serial_num>]>
<-addext_ski>
<-addext_ku digitalSignature,nonRepudiation,keyEncipherment,dataEncipherment,keyAgreement,keyCertSign,cRLSign,encipherOnly,decipherOnly>
<-addext_basic_cons [CA] | [-pathLen [pathlen]]]>
<[-cert [filename]] [-trusted_cert|-user_cert]> [-pwd <pwd>] | [-auto_login_only][-sign_alg <md5|sha1|sha256|sha384|sha512|ecdsasha1|ecdsasha256|ecdsasha384|ecdsasha512>]
<-trust_flags [SERVER_AUTH,CLIENT_AUTH|VALID_PEER]>

예시
1. Wallet에 인증서 요청 추가

orapki wallet add -wallet loc \
-dn user_dn \
-keysize 512|1024|2048|4096
  1. Wallet에 신뢰받는 인증서 추가
orapki wallet add -wallet loc \
-trusted_cert -cert certificate_location
  1. Wallet에 Root 인증서 추가
orapki wallet add -wallet wallet_location \
-dn certificate_dn \
-keysize 512|1024|2048 -self_signed \
-validity number_of_days
  1. Wallet에 유저 인증서 추가
orapki wallet add -wallet loc \
-user_cert -cert certificate_location

dn

CN : 가입자의 이름을 나타내는 속성 (ex: 도메인 명)
OU : 가입자가 속한 하위 조직명
O : 가입자가 속한 조직명
L : 가입자가 속한 지역명
ST : 속한 도시나 도명
C : 가입자가 속한 국가

orapki wallet pkcs12_to_jks

orapki wallet pkcs12_to_jks -wallet ./mywallet/ \
-jksKeyStoreLoc ./keystore.jks -jksKeyStorepwd kimsw001
orapki wallet jks_to_pkcs12 [-wallet [wallet]] [-pwd <pwd>] \
[-keystore [keystore]] [-jkspwd [jkspwd]]
<-aliases [alias:alias..]>

orapki wallet pkcs12_to_jks [-wallet [wallet]] [-pwd <pwd>] \
[-jksKeyStoreLoc <jksKSloc> -jksKeyStorepwd <jksKS_pwd>] \
[-jksTrustStoreLoc <loc> -jksTrustStorepwd <pwd>]
orapki wallet import_pkcs12 [-wallet <wallet>] [-pwd <pwd>] \
[-pkcs12file <pkcs12Loc>] [-pkcs12pwd <pkcs12Pwd>]

인증받은 인증서


#Wallet 생성
orapki wallet create -wallet ./mywallet -auto_login \
-with_trust_flags -compat_v12 -pwd kimsw001
Oracle PKI Tool: 12.1.3.0.0 버전
Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved.

ls
bundle.crt  mywallet        password.txt    privateKeynopass.key
RootCA.crt  domain_cert.pem privateKey.key

# pkcs12(domain_cert.pfx) 생성. *****는 password.txt 내용
openssl pkcs12 -export -in domain_cert.pem -inkey privateKeynopass.key \
-certfile bundle.crt  -name myname -out domain_cert.pfx
Enter Export Password:*****
Verifying - Enter Export Password:*****

ls
bundle.crt  mywallet         domain_cert.pfx  privateKey.key
RootCA.crt  domain_cert.pem  password.txt     privateKeynopass.key

# pkcs를 jks로 변환
keytool -importkeystore -srckeystore domain_cert.pfx \
-destkeystore domain_cert.jks -srcstoretype pkcs12 -deststoretype jks
대상 키 저장소 비밀번호 입력:*****
새 비밀번호 다시 입력:*****
소스 키 저장소 비밀번호 입력:*****
myname 별칭에 대한 항목이 성공적으로 임포트되었습니다.
임포트 명령 완료: 성공적으로 임포트된 항목은 1개, 실패하거나 취소된 항목은 0개입니다.

#
keytool -importkeystore -srckeystore domain_cert.jks -destkeystore domain_cert.p12 -deststoretype PKCS12
대상 키 저장소 비밀번호 입력:*****
새 비밀번호 다시 입력:*****
소스 키 저장소 비밀번호 입력:*****
myname 별칭에 대한 항목이 성공적으로 임포트되었습니다.
임포트 명령 완료: 성공적으로 임포트된 항목은 1개, 실패하거나 취소된 항목은 0개입니다.

ls
RootCA.crt  domain_cert.p12  password.txt
mywallet    domain_cert.pem  privateKey.key
bundle.crt  domain_cert.jks  domain_cert.pfx  privateKeynopass.key

# 인증서 생성
openssl pkcs12 -in domain_cert.p12 -nokeys -out domain_cert.crt
Enter Import Password:*****
MAC verified OK
# 키 생성
openssl pkcs12 -in domain_cert.p12 -nocerts -nodes -out domain_cert.key
Enter Import Password:*****
MAC verified OK

ls
RootCA.crt  domain_cert.jks  domain_cert.pem  privateKey.key
mywallet    domain_cert.key  domain_cert.pfx  privateKeynopass.key
bundle.crt  domain_cert.crt  domain_cert.p12  password.txt

# Wallet에 domain_cert.p12 import
orapki wallet import_pkcs12 -wallet ./mywallet/ -pkcs12file ./domain_cert.p12
Oracle PKI Tool: 12.1.3.0.0 버전
Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved.

전자 지갑 비밀번호 입력:kimsw001
oracle.security.crypto.core.CipherException: Invalid padding string (or incorrect password)
orapki wallet import_pkcs12 -wallet ./mywallet/ -pkcs12file ./domain_cert.p12
Oracle PKI Tool: 12.1.3.0.0 버전
Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved.

전자 지갑 비밀번호 입력:kimsw001
PKCS#12 파일 비밀번호 입력:*****
orapki command import_pkcs12 executed successfully.

0개의 댓글