我读的Facebook开发者在开发指南这里
它说我必须使用keytool导出我的应用程序的签名,例如:
keytool -exportcert -alias androiddebugkey -keystore~/.android/debug.keystore | openssl sha1 -binary | openssl base64
我不知道如何找到keytool来运行它.我试图打开Windows命令提示符并粘贴上面的命令,但它不起作用.
密钥库是实际证书,还是别名证书?
如果我使用不同的别名来签署我的应用程序,它会破坏市场上的更新吗?或者我是否需要使用不同的密钥库来签署我的应用程序以解决问题?别名中的信息可以从何处查看?
我用一个密钥签署了我的JWS应用程序MemorizEasy,其别名为:memofile.reference.emma.jar =/Users/simpatico/.netbeans/6.8/modules/ext/emma.jar
我不记得为什么我选择了这么长的别名.我怀疑它只是备忘录,但在我的项目设置中我有:jnlp.signjar.alias = memofile.reference.emma.jar =/Users/simpatico/.netbeans/6.8/modules/ext/emma.jar我现在更新应用程序并使用maven我需要将别名指定为:memofile.reference.emma.jar =/Users/simpatico/.netbeans/6.8/modules/ext/emma.jar
然而,这不起作用.尝试使用别名mjee的另一个键可行.那么我可以更改密钥的别名吗?如果是这样,怎么样?否则,Maven为什么不接受我的别名呢?
我想更改我在密钥库中使用的密码,用于谷歌播放中已有的Android应用程序,我想在做之前了解一些事情:
1)如果我更改了密钥库密码,我是否可以继续使用相同的密钥库来存储上传的应用程序(我需要这样做,这就是我要问的原因)
2)更改我的别名密码会产生同样的后果吗?
3)我应该如何使用keytool?
我将首先介绍一下我在Java中设置密钥库等方面的知识并不多
我正在尝试调用SOAP Web服务,我得到了wsdl,生成了代码等等.在我部署它并尝试触发WS调用之前,一切似乎都没问题.
这是我的设置:
当我运行代码时,我得到以下异常:
Caused by: javax.net.ssl.SSLHandshakeException: SSLHandshakeException invoking https://tallyservices-qa.olson.com/tallyDemo2WebServices/tallyDemo2/sms: Received fatal alert: certificate_unknown
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(HTTPConduit.java:1336)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1320)
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:622)
at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
... 27 more
Caused by: javax.net.ssl.SSLHandshakeException: Received fatal alert: certificate_unknown
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:174)
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:136)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1837)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1019)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1203)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1230)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1214)
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:434)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:166)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1031)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:230)
at org.apache.cxf.transport.http.URLConnectionHTTPConduit$URLConnectionWrappedOutputStream.setupWrappedStream(URLConnectionHTTPConduit.java:170)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleHeadersTrustCaching(HTTPConduit.java:1280)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.onFirstWrite(HTTPConduit.java:1231)
at org.apache.cxf.transport.http.URLConnectionHTTPConduit$URLConnectionWrappedOutputStream.onFirstWrite(URLConnectionHTTPConduit.java:183) …Run Code Online (Sandbox Code Playgroud) 我有Java Web服务,并使用Java Keytool创建的jks文件实现了X.509.
keytool -genkey -keyalg RSA -sigalg SHA1withRSA -validity 730 -alias myservicekey -keypass skpass -storepass sspass -keystore serviceKeystore.jks -dname "cn=localhost"
keytool -genkey -keyalg RSA -sigalg SHA1withRSA -validity 730 -alias myclientkey -keypass ckpass -storepass cspass -keystore clientKeystore.jks -dname "cn=clientuser"
Run Code Online (Sandbox Code Playgroud)
要在客户端和服务器之间建立信任,我将服务器证书导入客户端和客户端证书到服务器.
将服务器公钥(证书)导入客户端.
keytool -export -rfc -keystore clientKeystore.jks -storepass cspass -alias myclientkey -file MyClient.cer
keytool -import -trustcacerts -keystore serviceKeystore.jks -storepass sspass -alias myclientkey -file MyClient.cer -noprompt
Run Code Online (Sandbox Code Playgroud)
将客户端公钥(certs)导入服务器
keytool -export -rfc -keystore serviceKeystore.jks -storepass sspass -alias myservicekey -file MyService.cer
keytool -import -trustcacerts -keystore …Run Code Online (Sandbox Code Playgroud) android ×3
java ×3
keytool ×3
code-signing ×1
facebook ×1
google-play ×1
jar-signing ×1
jks ×1
maven-2 ×1
pfx ×1
soap ×1
tomcat ×1
windows ×1
x509 ×1