Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to change the security type from SSL to TLS in Jenkins?

I am trying to setup the smtp email notification. I could see that the gmail part works fine. I want to configure it for my office 365.

Smtp server = smtp.office365.com

We don't have SSL configured. Instead we use TLS. How can I set the TLS in the Jenkins? There is only a check button which suggests to use SSL or not. If I disable it what is it going to use?

I get the following errors -

Failed to send out e-mail  javax.mail.MessagingException: Could not connect to SMTP host: smtp.office365.com, port: 587;   nested exception is:     javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?     at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1934)     at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:638)     at javax.mail.Service.connect(Service.java:317)     at javax.mail.Service.connect(Service.java:176)     at javax.mail.Service.connect(Service.java:125)     at javax.mail.Transport.send0(Transport.java:194)     at javax.mail.Transport.send(Transport.java:124)     at hudson.tasks.Mailer$DescriptorImpl.doSendTestMail(Mailer.java:499)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.lang.reflect.Method.invoke(Method.java:616)     at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:298)     at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:161)     at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:96)     at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:120)     at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)     at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728)     at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858)     at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:248)     at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)     at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728)     at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858)     at org.kohsuke.stapler.Stapler.invoke(Stapler.java:631)     at org.kohsuke.stapler.Stapler.service(Stapler.java:225)     at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)     at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:686)     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1494)     at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:96)     at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:88)     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)     at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48)     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)     at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)     at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)     at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)     at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:46)     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)     at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1474)     at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499)     at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)     at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:533)     at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)     at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)     at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)     at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)     at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)     at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)     at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)     at org.eclipse.jetty.server.Server.handle(Server.java:370)     at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)     at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:960)     at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1021)     at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)     at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)     at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)     at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668)     at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)     at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)     at java.lang.Thread.run(Thread.java:679) Caused by: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?     at sun.security.ssl.InputRecord.handleUnknownRecord(InputRecord.java:542)     at sun.security.ssl.InputRecord.read(InputRecord.java:374)     at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:850)     at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1190)     at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1217)     at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1201)     at com.sun.mail.util.SocketFetcher.configureSSLSocket(SocketFetcher.java:507)     at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:238)     at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1900)     ... 63 more 
like image 236
dexterous Avatar asked Nov 25 '13 09:11

dexterous


People also ask

How do I start TLS in Jenkins?

Note: Jenkins email plugin always needs SMTP credentials that are often sender's email credentials when you checkmark "Use SMTP Authentication" option for any "SSL - port 465" or "non SSL - port 587" configuration. to get TLS working Cancel the “Use SSL“, choose the “Test configuration by sending test e-mail” to test.

Does Jenkins use TLS?

Using HTTP/2The Jetty server used by Jenkins supports HTTP/2 with the addition of the Application-Layer Protocol Negotiation (ALPN) TLS extension.

What TLS version does https use?

TLS 1.3 is the latest version of the TLS protocol. TLS, which is used by HTTPS and other network protocols for encryption, is the modern version of SSL. TLS 1.3 dropped support for older, less secure cryptographic features, and it sped up TLS handshakes, among other improvements.


2 Answers

For Jenkins on Windows, open jenkins.xml and modify the arguments node

-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -Dmail.smtp.starttls.enable=true -jar "%BASE%\jenkins.war" --httpPort=8080 
like image 53
kaloyan Avatar answered Oct 07 '22 15:10

kaloyan


Office 365 indeed requires authenticated SMTP with TLS. The SSL option in the Jenkins configuration does not help, leave it unchecked. Instead add the following system property to the Jenkins VM:

-Dmail.smtp.starttls.enable=true 

For the standalone Jenkins put it in jenkins.xml from the installation folder and for Tomcat update the startup script or use tray icon on Windows.

Then restart jenkins and you're good to go.

like image 30
Bogdan Calmac Avatar answered Oct 07 '22 15:10

Bogdan Calmac