imaps 프로토콜을 사용하여 메일 서비스 (zimbra)에 전자 메일에 액세스하려고합니다. 내가 JavaMail에 항아리 버전을 사용하고 1.4.7imaps 프로토콜로 메일 서비스에 연결합니다. 인증서가 알고리즘을 준수하지 않습니다.
Properties props = (Properties)System.getProperties().clone();
// SSL setting
props.put("mail.imaps.ssl.checkserveridentity", "false");
props.put("mail.imaps.ssl.trust", "*");
MailSSLSocketFactory socketFactory = new MailSSLSocketFactory();
socketFactory.setTrustAllHosts(true);
props.put("mail.imaps.ssl.socketFactory", socketFactory);
Store store = Session.getDefaultInstance(props).getStore("imaps");
store.connect(host, email, password); /* exception here */
인쇄 예외 : 아래 이미지에 표시된대로 나는 웹 페이지에서 인증서 (가 .crt 파일)를 가지고
javax.mail.MessagingException: java.security.cert.CertificateException: Certificates does not conform to algorithm constraints;
nested exception is:
javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: Certificates does not conform to algorithm constraints
at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:670)
at javax.mail.Service.connect(Service.java:295)
at javax.mail.Service.connect(Service.java:176)
첫째. 둘째, 나는 여기에 사람을 잃었 어떤 키 도구 명령
keytool -importcert -file company.net.crt -keystore company.net -alias "company.net" -storepass changeit
와 인증서를 가져온?
WORKED !! 답변 주셔서 감사합니다, VM 인수가 누락되었습니다. 자바 메일 SLL 노트에서 찾았습니다. -Djavax.net.ssl.trustStore = $ HOME/.keystore –