keytool error 키 저장소가 변조되었거나 비밀번호가 올바르지 않습니다


191

로컬 컴퓨터에서 인증서를 생성하는 동안 다음 오류가 발생합니다.

C:\Users\abc>keytool -genkey -alias tomcat -keyalg RSA
Enter keystore password:
keytool error: java.io.IOException: Keystore was tampered with, or password was incorrect

jdk 버전에 몇 가지 문제가 있다고 생각합니다. 내 동료 컴퓨터에서 동일한 명령을 실행했는데 정상적으로 작동합니다.

입력을 공유하십시오.


1
올바른 비밀번호를 제공하고 있습니까? 적절한 디렉토리에서 명령을 실행합니까?
dev2d

1
비밀번호를 만들 때 새 비밀번호를 입력하고 있는데 어떤 디렉토리에서 비밀번호를 실행해야합니까?
C4CodeE4Exe

키 도구 -genkeypair -alias 바람둥이 -keyalg RSA -keystore D : \ keystore.jks은 키 도구 -export -alias mycert -keystore D와 같은 키 스토어하고 수출 CER 생성이 시도 : \ keystore.jks - 파일 vorburger.cer
dev2d

"keytool -genkey -alias tomcat -keyalg RSA"에서와 동일한 효과를 나타냅니다.
C4CodeE4Exe

이 cer 생성의 목적을 말해 줄 수 있습니까?
dev2d

답변:


89

귀하의 설명에서 나는 당신이 Windows 컴퓨터에 있고 가정은 ABC라고 가정합니다.

그래서 지금 : 원인

이 명령을 실행할 때

keytool -genkey -alias tomcat -keyalg RSA

명시 적 키 저장소를 지정하지 않기 때문에 키 저장소를 생성하려고 시도합니다 (귀하의 경우 예외로 업데이트하기 위해). 키 C:\users\abc>.keystore버전을 제공한다고 생각하는 동안 .keystore에 대한 이전 비밀번호를 제공해야합니다. 새로운).

해결책

  1. 위치 .keystore에서 삭제 C:\users\abc>하고 명령을 시도하십시오.

  2. 또는 새로운 xyzkeystore를 생성하는 다음 명령을 시도하십시오.

    keytool -genkey -keystore xyzkeystore -alias tomcat -keyalg RSA

참고 : -genkey 이제는 오래 -genkeypair되었지만 둘 다 똑같이 작동합니다.


나는 그것을 내 자신의 것으로 파악했지만. "C : \ users \ abc> 위치에서 .keystore를 삭제하고 명령을 시도하십시오"가 올바른 해결책입니다.
C4CodeE4Exe

인수로 키 저장소 패스를 전달할 수 있습니까?
user1767754

2
기존 키 저장소 파일을 삭제 한 후 keytool -genkey -alias key0-keyalg RSA 명령을 수행 한 후 새 비밀번호 및 기타 데이터를 묻습니다. 그러나 여전히 서명 된 apk를 만들려고 할 때 동일한 오류 메시지가 표시됩니다. ""키 저장소가 변조되었거나 암호가 잘못되었습니다. "여기서 무엇이 문제입니까?

266

cacerts 키 저장소의 기본 비밀번호를 사용하여 해결했습니다. 'changeit'


haha .. 실제로 암호를 새 암호로 변경하지 않고 기본 작업 : D
Muhammad Suleman

감사합니다 :) .. 그것은 내가 .. 내가 .cer 파일을 내보내는 데 사용하는 암호를 사용했는데 내 end..and에서 근무
Danyal Sandeelo

나를 위해 일했다. 감사!
colefner

157

이 답변은 새로운 Mac 사용자에게 유용합니다 (Linux 용, Windows 7 64 비트도 가능).

비어있는 암호가 내 Mac에서 작동했습니다. (아래 줄을 터미널에 붙여 넣으십시오)

keytool -list -v -keystore ~/.android/debug.keystore

그것을 요구할 때

Enter keystore password:  

그냥 Enter 버튼을 누르십시오 (아무것도 입력하지 마십시오). 작동해야합니다.

debug.keystore 프로젝트 기반 키 저장소 파일이 아니라 기본 파일 인지 확인하십시오 (암호가 변경 될 수 있음).

MacOS Sierra 10.10 이상에서도 잘 작동합니다.

나는 그것이 리눅스 환경에서도 작동한다고 들었다. 나는 아직 리눅스에서 그것을 테스트하지 않았습니다.


1
감사. 그것은 디버그 키 저장소에 대한 내 창 10에서 작동
Vinayak Singh

11

비밀번호에 changeit을 사용하는 것도 중요합니다.

이 명령은 마침내 부두와 함께 나를 위해 일했습니다.

 keytool -genkey -keyalg RSA -alias selfsigned -keystore keystore.jks -storepass changeit -validity 360 -keysize 2048

11

Tomcat 8.5에서는 올바른 속성 이름을 작성하도록주의하십시오. 이것은 server.xml의 코드입니다.

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" SSLEnabled="true">
    <SSLHostConfig>
        <Certificate certificateKeystoreFile="conf/keystore" certificateKeystorePassword="mypassword" type="RSA"/>
    </SSLHostConfig>
</Connector>

https://tomcat.apache.org/tomcat-8.5-doc/config/http.html 을 방문 하여 모든 속성을 볼 수 있습니다


1
비밀번호를 어디에서 참조했는지 알려 주셔서 감사합니다! :)
N00b Pr0grammer



4

Windows에서 작동

명령 프롬프트를 엽니 다 (Windows 키 + R을 누른 다음 나타나는 대화 상자에 따옴표없이 "cmd"를 입력 한 다음 Enter 키를 누름).

그런 다음 아래 코드 스 니프를 입력하십시오.

  1. cd C : \ Program Files \ Java \ jdk1.7.0_25 \ bin

그런 다음 다음 명령을 입력하십시오

  1. keytool -list -keystore "C : / 문서 및 설정 / 사용자 이름 /.android/debug.keystore"

그런 다음 키 저장소 비밀번호를 요청합니다. 기본 비밀번호는 "android"유형이며 "DONT TYPE ANY PASSWORD"를 입력하거나 Enter 키를 누르십시오.


3

홈 폴더를 확인하십시오 ~/.gradle/gradle.properties. 때로는 gradle.properties홈 디렉토리에 있으면 거기에서 세부 사항을 가져옵니다. 변경하거나 파일을 삭제할 수 있습니다. 그런 다음 로컬 폴더에서 필요한 세부 정보를 가져옵니다.


1

이 가이드에 따라 Flutter 앱에 서명하는 중이라면 Android 앱을 빌드하고 릴리스 한 후이 오류가 발생합니다. 이 답변이 도움이 되었기를 바랍니다.

내 경우에는 key.jks를 저장하는 경로를 변경했습니다. 그 경로에 기존 파일이 있었기 때문에 이런 일이 일어났습니다.

keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key

이 명령은 key.jks 파일을 홈 디렉토리에 저장합니다. 다른 곳에 저장하려면 -keystore 매개 변수에 전달한 인수를 변경하십시오.

나의 경우에는,

keytool -genkey -v -keystore /Users/Y/Desktop/X/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias keyYour

즉, X- 사용자 이름 및 Y- 폴더 이름

그런 다음 메시지가 표시됩니다 키 저장소 암호를 입력 하고 새 암호를 다시 입력 : . 여기에서 원하는 비밀번호를 사용할 수 있습니다.

그러나 키 저장소 파일을 개인용으로 유지하십시오. 공개 소스 제어로 확인하지 마십시오!


0

이 페이지의 조언을 요약하면 다음과 같이 마무리되었습니다.

keytool -genkeypair -keystore ~/.android/release.keystore -alias <my_alias> -storepass <my_cert_pass> -keyalg RSA

그런 다음 별칭의 이름, 조직, 위치 및 비밀번호에 관한 일련의 질문을 받았습니다.


0

키 도구 오류 : java.io.IOException : 키 저장소가 변조되었거나 비밀번호가 올바르지 않습니다.

키 저장소 경로 C : \ MyWorks \ mykeystoreC : \ MyWorks \ mykeystore.keystore로 변경하면 문제가 해결되었습니다 .


1
첫 번째 경로 "C : \ MyWorks \ mykeystore"는 키 저장소가 아닙니다.
Jorgesys


0

출력 파일을 삭제하고 명령을 다시 실행하여이 문제를 해결했습니다. 이전 파일을 덮어 쓰지 않는 것으로 나타났습니다. Tomcat으로 인증서를 암호화하자.


0
 [root@localhost Certificate]# openssl pkcs12 -export -in 
 /opt/Certificate/115c99f4c5aa98f5.crt -inkey /opt/Certificate/ravi.in.key -certfile 
/opt/Certificate/gd_bundle-g2-g1.crt -out RaviNew.p12

Enter Export Password: <Password>
Verifying - Enter Export Password: <Password>

참고 :- 내보내기 Pasworrd는 JKS 파일을 만들어야하기 때문에 어디에서나 적어 둡니다 (선택하려는 암호에 따라 다릅니다)

  keytool -importkeystore -srckeystore DigiEduNew.p12 -srcstoretype pkcs12 -destkeystore finaldigiEdu.jks -deststoretype JKS
  Importing keystore DigiEduNew.p12 to finaldigiEdu.jks...
  Enter destination keystore password: <Any Password >
  Re-enter new password: <Any Password >
  Enter source keystore password: <.P12 Password >
  Entry for alias 1 successfully imported.
  Import command completed:  1 entries successfully imported, 0 entries failed or 
  cancelled



 Warning:
 The JKS keystore uses a proprietary format. It is recommended to migrate to PKCS12 
 which is an industry standard format using "keytool -importkeystore -srckeystore 
 finaldigiEdu.jks -destkeystore finaldigiEdu.jks -deststoretype pkcs12".

0

나를 위해 나는 아랍어 문자에서 영어 문자로 암호를 변경하여 문제를 해결했지만 먼저 폴더로 이동하여 생성 된 키를 삭제 한 다음 작동합니다.


0

Xamarin Forms 4.7 및 Visual Studio 2019 16.7.0 Preview 3.1의 경우 최근에 업데이트 된 Android 빌드 도구 (apksigner)와 JDK의 버전이 일치하지 않는 문제였습니다. JDK를 최신으로 업데이트하고 도구-> 옵션-> Xamarin-> Android 설정에서 새 JDK 경로를 가리키면 작동합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.