【发布时间】:2013-11-07 01:20:39
【问题描述】:
我正在关注Twilio-java example from the github page.
这是我写的sn-p代码:
private boolean doSms(Notification notification) {
String message = "test";
try {
final MessageFactory messageFactory = mainAccount.getMessageFactory();
final List<NameValuePair> messageParams = new ArrayList<NameValuePair>();
messageParams.add(new BasicNameValuePair("To", notification.getUser().getPhoneNumber()));
messageParams.add(new BasicNameValuePair("From", BoundaryNumber));
messageParams.add(new BasicNameValuePair("Body", message));
messageFactory.create(messageParams);
} catch (TwilioRestException e) {
return false;
}
return true;
}
我非常密切地关注该示例,但是,我似乎遇到了 SSLPeerUnverifiedException:
Caused by: javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
at com.sun.net.ssl.internal.ssl.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:352)
at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:128)
at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:397)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:148)
at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:149)
at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:121)
at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:573)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:425)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:732)
at com.twilio.sdk.TwilioRestClient.request(TwilioRestClient.java:416)
... 11 more
我正在使用试用帐户并从我的 Twilio 号码 (BoundaryNumber) 向我的手机(在 Twilio 中注册)发送短信现在我进行了一些挖掘并发现了一些类似的问题。比如Bryan seems to be on the right track here.
我只是不确定如何解决证书问题。我不确定在哪里可以找到 twilio 证书,而且很多命令行建议在 OS X(10.9 Mavericks)上并不适用。我相信certs are managed with the Keychain access tool on OS X.
【问题讨论】:
-
它可以重现吗?例如,您每次提出请求时都会收到它,还是仅在某些时候收到?
-
是的,每次都会发生。
-
我对小牛也有类似的问题。您可以尝试打开 java-ssl 日志记录(-Djavax.net.debug=ssl)。如果这样做,我会看到以下错误:http-bio-8000-exec-1,处理异常:java.lang.RuntimeException:意外错误:java.security.InvalidAlgorithmParameterException:trustAnchors 参数必须为非空 http-bio -8000-exec-1,发送 TLSv1 警报:致命,描述 = internal_error http-bio-8000-exec-1,写入:TLSv1 警报,长度 = 2
-
我还得到:main,处理异常:java.lang.RuntimeException:意外错误:java.security.InvalidAlgorithmParameterException:trustAnchors 参数必须非空 main,发送 TLSv1 ALERT:致命,描述 = internal_error main, WRITE: TLSv1 Alert, length = 2
标签: java macos ssl certificate twilio