Store File, Store Password, Key Alias, Key Password
store file
key store file에 대한 내용은 길어서 아래서 따로 다루겠음
store password
keystore를 열어볼때 사용됨.
아래와 같은 keystore를 열어보기 위한 명령어 실행 시에도 -storepass 옵션을 통해 store password를 전달하였음
keytool -list -v -keystore "$HOME/.android/debug.keystore" -alias androiddebugkey -storepass android -keypass android
key alias
keystore 내의 key entry (private key와 인증서)에 대한 별칭
key password
특정 key alias를 열람하기 위한 비밀번호
(key) store file
- .keystore 확장자를 가진 파일을 key store file이라고 한다.
- 대표적으로 안드로이드앱 디버깅시 디버깅용 앱을 서명하는데 필요한 키를 담고 있는 debug keystore가 있다.
debug.keystore 파일 찾아보기
맥 OS의 경우, $HOME/.android/debug.keystore 에 저장되있다.
안드로이드 스튜디오에서도 "File > Project Structure > Modules > Signing Config"에서 debug keystore 파일의 존재를 확인할 수 있다.

debug.keystore 파일 들여다 보기
터미널에서 다음 명령어를 통해 keystore 파일 내부를 들여다 볼 수 있다
keytool -list -v -keystore "$HOME/.android/debug.keystore" -alias androiddebugkey -storepass android -keypass android
- -list: keystore내에 저장된 entry 조회화기
- -v: verbose output
- -keystore: keystore name. 경로 명시
- -alias: store 내에 저장된 key alias
- -storepass: keystorepassword
- -keypass: alias로 접근하고자하는 key조회용 비밀번호

- certificate fingerprint
- certificate 내의 데이터를 토대로 SHA1, SHA256 해쉬함수를 적용한 값
- cetificate에 대한 unique identifier
- 인증서의 위변조 여부를 판단할 때 쓰임
그렇다면 공개키는 어디에?
debug.keystore 파일안에 개인키가 있다면 당연히 공개키도 있어야한다.
그러나 위 명령어를 실행한 결과에서는 공개키가 보이지 않는다.
하지만 certificate 관련 entry들을 통해 Keystore안에 인증서가 있고, 그 안에 공개키가 있으리라 추측할 수 있다.
keystore 파일에서 인증서를 추출해내기 위해서는 다음 명령어를 실행 할 수 있다:
keytool -exportcert -alias {keystore 파일내 key alias} -keystore {키스토어 파일 경로} -file {추출한 인증서 저장 경로} -rfc
(-rfc 옵션을 사용하지 않으면 인증서가 binary로 출력되어 읽을 수가 없다)
이렇게 추출한 인증서를 cat 명령어를 통해 뽑아보면, Keystore로 부터 인증서가 잘 추출된 것을 확인할 수 있다:

keystore 생성 해보기
Keystore 파일을 생성하는 것은 어렵지 않다.
여러가지 방법이 있겠지만, 가장 간단한 방법은 android studio를 사용하는 것
관련 공식문서를 참고하면 쉽게 생성가능함.
Certifiate 정보를 채우면 해당 정보를 이용하여 certificate까지 만들어줌.
왜 key "store"일까?
이름이 스토어라면 분명 하나의 key pair만 포함하지 않을 것이다.
하나의 keystore안에 여러개의 key pair를 담는 것 가능함.
keytool을 이용하면 A keystore의 key pair entry를 B keystore로 import하는 방식으로 keystore에 key 추가 가능.
다음 명령어를 실행하면 위에서 생성한 연습용 keystore에 android debug key를 집어넣을 수 있다:
keytool -importkeystore -srckeystore ~/.android/debug.keystore -destkeystore {import를 하는 keystore 파일 경로}
하나의 Keystore에 여러개의 key entries가 있다면, 각 key entry로 각기다른 app 서명을 하는 등의 용도로 사용 가능하다.
하지만, keystore 파일의 또다른 확장자인 .jks 확장자는 키스토어에 새로운 key entry를 추가하는 것을 native하게는 지원하지 않는다고 한다.
또한, keystore에 key entry를 추가하는 것은 keystore가 변경됬다는 것이라서, 보안적인 측면에서는 차라리 새로운 Keystore를 만들어 쓰는 것이 낫다고 한다.
'mobile > android' 카테고리의 다른 글
| 안드로이드 앱 배포하기 (2) - 개념 이해 - 앱 서명 (0) | 2024.04.28 |
|---|