当我将自签名证书导入jre 库中提供的证书文件“ cacerts ”时,我收到错误消息:“ keytool 错误:java.io.IOException:toDerInputStream 拒绝标签类型 45 ” 。
用于导入证书的命令是“ keytool -importkeystore -srckeystore D:\User\KotakTPINSSL.cer -srcstoretype pkcs12 -destkeystore D:\User\certfile\cacerts -deststoretype JKS”
我还浏览了链接推送通知 - 引起:java.io.IOException:toDerInputStream 拒绝标签类型 45 但这不适合这个问题。
有人可以告诉我导入证书的替代命令吗?或者还有什么我需要做的吗?
我正在尝试使用Java APNS(一个开源项目)向iPhone发送推送通知.但是我收到了一个错误.
我使用.pem文件作为证书.这应该是.p12文件吗?我不确定区别是什么,但我在网上看到这些文件格式之间存在差异.
这是代码:
ApnsService service =
APNS.newService()
.withCert("gpk.pem", "XXXX")
.withSandboxDestination()
.build();
String payload = APNS.newPayload().alertBody("Can't be simpler than this!").build();
String token = "theTokenIsRemoveHere";
service.push(token, payload);
Run Code Online (Sandbox Code Playgroud)
这是错误:
Exception in thread "main" com.notnoop.exceptions.InvalidSSLConfig: java.io.IOException: toDerInputStream rejects tag type 45
at com.notnoop.apns.internal.Utilities.newSSLContext(Utilities.java:102)
at com.notnoop.apns.ApnsServiceBuilder.withCert(ApnsServiceBuilder.java:161)
at com.notnoop.apns.ApnsServiceBuilder.withCert(ApnsServiceBuilder.java:124)
at com.geomobsters.cli.ApnsClient.main(ApnsClient.java:12)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Caused by: java.io.IOException: toDerInputStream rejects tag type 45
at sun.security.util.DerValue.toDerInputStream(DerValue.java:806)
at com.sun.net.ssl.internal.pkcs12.PKCS12KeyStore.engineLoad(PKCS12KeyStore.java:1201)
at java.security.KeyStore.load(KeyStore.java:1185)
at com.notnoop.apns.internal.Utilities.newSSLContext(Utilities.java:87)
... 8 more
Run Code Online (Sandbox Code Playgroud)