코드 한 줄

[Solution] 안드로이드 사용자 인증서를 시스템 인증서로 설치하기 [1] 본문

Develop -/Android

[Solution] 안드로이드 사용자 인증서를 시스템 인증서로 설치하기 [1]

Ahntenna 2025. 2. 27. 16:31

 

본 과정은 윈도우에서 진행되었으며 openssl 이 설치되어 있다는 가정하에 진행합니다.

해당 포스트에서는 인증서를 생성하는 단계까지의 내용만 담고 있습니다.

 

 

 

먼저 아래의 openssl.cnf 파일을 준비합니다.

(TEST 에 해당하는 부분은 적절히 변경해줍니다)

# openssl.cnf

[ req ]
default_bits			= 2048
default_md			= sha256
default_keyfile			= digi_cert.key
distinguished_name		= req_distinguished_name
extensions			= v3_ca
req_extensions			= v3_ca

[ v3_ca ]
basicConstraints       = critical, CA:TRUE, pathlen:0
subjectKeyIdentifier   = hash
keyUsage               = keyCertSign, cRLSign
nsCertType             = sslCA, emailCA, objCA

[ req_distinguished_name ]
countryName                     = Country Name
countryName_default             = KR
countryName_min                 = 2
countryName_max                 = 2
organizationName                = TEST
organizationName_default        = TEST
organizationalUnitName          = TEST
organizationalUnitName_default  = TEST
commonName                      = TEST
commonName_default              = TEST
commonName_max                  = 64

 

 

위 openssl.cnf 파일을 이용해서 private key 를 생성합니다.

(기간, 파일 이름 등 적절히 변경해줍니다)

# Create a private key.

openssl req -x509 -days 365 -nodes -newkey rsa:2048 -outform der -keyout server.key -out cert.der -extensions v3_ca -config openssl.cnf

 

 

private key 를 pkcs8 포맷으로 변환합니다.

# Convert key to pkcs8 format

openssl rsa -in server.key -inform pem -out server.key.der -outform der
openssl pkcs8 -topk8 -in server.key.der -inform der -out server.key.pkcs8.der -outform der -nocrypt

 

 

cert.der 을 pem 포맷으로 변환합니다.

# Convert DER to PEM

openssl x509 -inform DER -in cert.der -out cert.pem

 

 

인증서의 hash 값을 추출합니다.

# get hash from cert

openssl x509 -inform PEM -subject_hash_old -in cert.pem
  => 1127f18c

첫 번째 줄을 복사한다.

 

 

hash 값을 이용해 cert.pem 의 이름을 변경합니다.

# rename to [HASH].0

move cert.pem 1127f18c.0

 

 

 

실질적으로 1127f18c.0 파일을 안드로이드 단말기에 설치할 예정입니다.

추후 과정은 다음 포스팅을 확인해주세요 :)

Comments