我正在尝试按照Android映射教程进入这一部分,我必须得到一个API密钥.
我找到了我,debug.keystore
但目录中似乎没有keytool
应用程序:
C:\Documents and Settings\tward\\.android>ls
adb_usb.ini avd debug.keystore repositories.cfg androidtool.cfg ddms.cfg default.keyset
Run Code Online (Sandbox Code Playgroud)
keytool
这个目录中也没有:
C:\Android\android-sdk-windows\tools>ls
AdbWinApi.dll apkbuilder.bat etc1tool.exe mksdcard.exe
AdbWinUsbApi.dll ddms.bat fastboot.exe source.properties
Jet dmtracedump.exe hierarchyviewer.bat sqlite3.exe
NOTICE.txt draw9patch.bat hprof-conv.exe traceview.bat
adb.exe emulator.exe layoutopt.bat zipalign.exe
android.bat emulator_NOTICE.txt lib
Run Code Online (Sandbox Code Playgroud)
我使用Eclipse作为编辑器,并且相信我已经下载了所有最新的SDK.
我究竟做错了什么?
我知道密钥库通常会保存私钥/公钥,信任存储只保存公钥(并代表您打算与之通信的可信方列表).嗯,这是我的第一个假设,所以如果这不正确,我可能还没有开始......
我对使用keytool时如何/何时区分商店感兴趣.
所以,到目前为止,我已经创建了一个密钥库
keytool -import -alias bob -file bob.crt -keystore keystore.ks
Run Code Online (Sandbox Code Playgroud)
这将创建我的keystore.ks文件.我回答yes
问题我是否相信bob但是我不清楚这是否创建了密钥库文件或信任库文件?我可以设置我的应用程序以使用该文件.
-Djavax.net.ssl.keyStore=keystore.ks -Djavax.net.ssl.keyStorePassword=x
-Djavax.net.ssl.trustStore=keystore.ks -Djavax.net.ssl.trustStorePassword=x
Run Code Online (Sandbox Code Playgroud)
并且使用System.setProperty( "javax.net.debug", "ssl")
set,我可以在受信任的证书下看到证书(但不在密钥库部分下).我导入的特定证书只有一个公钥,我打算用它通过SSL连接向Bob发送内容(但也许最好留给另一个问题!).
任何指示或澄清都将非常感激.无论你导入什么,keytool的输出都是相同的,它的惯例是一个是密钥库而另一个是信任存储?使用SSL等时的关系是什么?
它看起来像一个标准问题,但我无法在任何地方找到明确的方向.
我有java代码尝试连接到可能具有自签名(或过期)证书的服务器.代码报告以下错误:
[HttpMethodDirector] I/O exception (javax.net.ssl.SSLHandshakeException) caught
when processing request: sun.security.validator.ValidatorException: PKIX path
building failed: sun.security.provider.certpath.SunCertPathBuilderException:
unable to find valid certification path to requested target
Run Code Online (Sandbox Code Playgroud)
据我了解,我必须使用keytool并告诉java允许这种连接是可以的.
解决此问题的所有说明都假设我完全熟练使用keytool,例如
为服务器生成私钥并将其导入密钥库
有没有人可以发布详细说明?
我正在运行unix,所以bash脚本最好.
不确定它是否重要,但代码是在jboss中执行的.
我有一个Java客户端试图访问带有自签名证书的服务器.
当我尝试发布到服务器时,我收到以下错误:
无法找到所请求目标的有效证书路径
在对这个问题进行了一些研究之后,我做了以下工作.
root.cer
文件.keytool -import -alias example -keystore cacerts -file root.cer
keytool -list -v -keystore cacerts
我仍然得到同样的错误.
我有一种感觉这是因为我的Glassfish实际上并没有阅读我修改过的cacert文件,但可能还有其他一些.
你们有没有遇到过这个问题,能否把我推向正确的方向?
我希望为我的应用程序生成一个应用程序签名,稍后将与Facebook集成.在Facebook的一个教程中,我发现了这个命令:
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
Run Code Online (Sandbox Code Playgroud)
在本教程中,它表示通过运行此cmd,我的生成签名的过程将开始.
但是,此命令会出错:
openssl is not recognized as an internal or external command
Run Code Online (Sandbox Code Playgroud)
我怎么能摆脱这个?
我读的Facebook开发者在开发指南这里
它说我必须使用keytool导出我的应用程序的签名,例如:
keytool -exportcert -alias androiddebugkey -keystore~/.android/debug.keystore | openssl sha1 -binary | openssl base64
我不知道如何找到keytool来运行它.我试图打开Windows命令提示符并粘贴上面的命令,但它不起作用.
我需要在android中使用mapview控件,我似乎无法理解如何运行keytool
.是用Eclipse安装的吗?我似乎找不到下载链接.
谢谢
我确实想将自签名证书导入Java,因此任何尝试建立SSL连接的Java应用程序都会信任此证书.
到目前为止,我设法将其导入
keytool -import -trustcacerts -noprompt -storepass changeit -alias $REMHOST -file $REMHOST.pem
keytool -import -trustcacerts -noprompt -keystore cacerts -storepass changeit -alias $REMHOST -file $REMHOST.pem
Run Code Online (Sandbox Code Playgroud)
不过,当我尝试跑步时,HTTPSClient.class
我仍然得到:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
当我浏览互联网上的一些帖子,了解更多关于签署Android应用程序的帖子时,我发布了如何签署应用程序的帖子,以及有关如果丢失了密钥库文件或密码的内容.
我在这里要问的问题是,我从未创建过密钥库,或者它的别名或密码,所以我怎么能忘记它呢?
我知道对于Android我们使用密码android,所以,如果密码是默认的android怎么会忘记它?(我确信必须有其他方法来创建新的密钥库).
最后,如果android是默认密码,那么默认别名是什么?
当我使用命令
C:\>keytool -list -alias androiddebugkey
-keystore .android\debug.keystore
-storepass android -keypass android
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
'keytool'不被识别为内部或外部命令,可操作程序或批处理文件.
我无法在计算机上获取证书指纹(MD5).
我确保密钥库文件存在于适当的位置.
有帮助吗?