Hi Justin,

Jetty requires that you have the full cert chain installed in the keystore(s) 
that you are using, or it will not start correctly and present the certificate 
(as it uses Java which requires all elements for the certificates to be 
present).

So, you need to install the full certificate chain (root, intermediate, server) 
as a single chained file (p7b or similar), or convert the certificate chain and 
keys to a keystore file if say in a p12 format.

BMC instructions are not the best for actually stating this, and are geared 
more towards a single self signed certificate (not an authority chained cert).



Here is a section from a configuration document I wrote for Service Broker, but 
the concept is the same:


1.1      Configuring Jetty (Service Broker)


To implement SSL configuration on Service Broker, you need to update the 
“jetty-http.xml” file on the Remedy Service Broker system – located in 
…/jetty/etc/jetty-http.xml.

 
<https://docs.bmc.com/docs/display/myitsb33/Configuring+access+to+the+MyIT+Service+Broker+server+over+SSL>
 
https://docs.bmc.com/docs/display/myitsb33/Configuring+access+to+the+MyIT+Service+Broker+server+over+SSL

Point to the location of the keystore that contains the Signed Certificate and 
keys (public/private).  You can generate a new keystore / keys / certificate 
for a Self Signed Certificate, or convert and existing file to a Java “.jks” 
keystore.

You may receive a file in the “.pfx” format (Windows, containing certificate(s) 
and keys) which you can convert to a Java “.jks” keystore using keytool or 
another program.   You may also wish to change the alias and store passwords 
for use with your application to standardise.

You can also choose to update the port that Service Broker uses for SSL to a 
standard port e.g. 443 or 8443.

Note:  If Jetty cannot find all required parts associated with the certificate 
(keys, certificate – including all certificates in the chain), the application 
will not start.

Sample: jetty-http.xml

<New id="httpsConfig" class="org.eclipse.jetty.server.HttpConfiguration">

    <Call name="addCustomizer">

        <Arg>

            <New class="org.eclipse.jetty.server.SecureRequestCustomizer" />

        </Arg>

    </Call>

</New>



<New id="sslContextFactory" 
class="org.eclipse.jetty.util.ssl.SslContextFactory">

    <Set name="KeyStorePath">C:/keystore/keystore</Set>

    <Set name="KeyManagerPassword">OBF:1v2j1uum1xtv1zej1zer1xtn1uvk1v1v</Set>

    <Set name="KeyStorePassword">OBF:1v2j1uum1xtv1zej1zer1xtn1uvk1v1v</Set>

    <Set name="TrustStorePath">C:/truststore/cacerts</Set>

    <Set name="TrustStorePassword">OBF:1v2j1uum1xtv1zej1zer1xtn1uvk1v1v</Set>

    <Set name="IncludeCipherSuites">

        <Array type="String">

            <Item>TLS_DHE_RSA.*</Item>

            <Item>TLS_ECDHE.*</Item>

        </Array>

    </Set>

    <Set name="ExcludeCipherSuites">

        <Array type="String">

            <Item>SSL_RSA_WITH_DES_CBC_SHA</Item>

            <Item>SSL_DHE_RSA_WITH_DES_CBC_SHA</Item>

            <Item>SSL_DHE_DSS_WITH_DES_CBC_SHA</Item>

            <Item>SSL_RSA_EXPORT_WITH_RC4_40_MD5</Item>

            <Item>SSL_RSA_EXPORT_WITH_DES40_CBC_SHA</Item>

            <Item>SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA</Item>

            <Item>SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA</Item>

            <Item>.*NULL.*</Item>

            <Item>.*RC4.*</Item>

            <Item>.*MD5.*</Item>

            <Item>.*DES.*</Item>

            <Item>.*DSS.*</Item>

            <Item>.*_DHE_RSA_.*</Item>

        </Array>

    </Set>

    <Set name="ExcludeProtocols">

        <Array type="java.lang.String">

            <Item>SSL</Item>

            <Item>SSLv2</Item>

            <Item>SSLv2Hello</Item>

            <Item>SSLv3</Item>

        </Array>

    </Set>

</New>

<New id="sslConnectionFactory" 
class="org.eclipse.jetty.server.SslConnectionFactory">

    <Arg name="sslContextFactory">

        <Ref refid="sslContextFactory" />

    </Arg>

    <Arg name="next">http/1.1</Arg>

</New>

<New id="sslConnector" class="org.eclipse.jetty.server.ServerConnector">

    <Arg name="server"><Ref refid="Server" /></Arg>

    <Arg name="factories">

        <Array type="org.eclipse.jetty.server.ConnectionFactory">

            <Item><Ref refid="sslConnectionFactory" /></Item>

            <Item>

                <New class="org.eclipse.jetty.server.HttpConnectionFactory">

                    <Arg name="config"><Ref refid="httpsConfig" /></Arg>

                </New>

            </Item>

        </Array>

    </Arg>

    <Set name="port">8443</Set>

</New>

<Call name="setConnectors">

    <Arg>

        <Array type="org.eclipse.jetty.server.ServerConnector">

            <Item>

                <Ref refid="sslConnector" />

            </Item>

        </Array>

    </Arg>

</Call>





----------------------------------------------



Kind Regards,



Carl Wilson





From: Action Request System discussion list(ARSList) 
[mailto:arslist@ARSLIST.ORG] On Behalf Of Fawver, Dustin
Sent: 21 August 2017 03:54
To: arslist@ARSLIST.ORG
Subject: Jetty over HTTPS



**

Greetings, Listers!



I’ve been working on getting Jetty to run on my dev environment so that I can 
start working on REST calls.  I have ARS 9.1.02 installed.  In short, I can get 
it to run over HTTP if I make the proper mods in the jetty selector file.  When 
I configure it to run using HTTPS on port 9443 (or even the default 8443), I 
get a message that the server unexpectedly closed the connection.  Running 
“netstat –a” shows that the server is listening on the designated port.



I’ve been trying different things with the keytool program.  I have a GeoTrust 
signed cert available for me to use.  I used the following command as outlined 
at https://docs.bmc.com/docs/ars91/configuring-the-rest-api-609071434.html



C:\Program Files\BMC Software\ARSystem\jetty\etc>"\Program 
Files\Java\jre1.8.0_73\bin\keytool.exe" -import -trustcacerts -alias etsu.edu 
-file etsu.edu.crt -keystore keystore



All of the required services (ARS, email, flashboards, Mid-Tier, Tomcat, etc) 
run on the same box.  I hope this is not causing a conflict.  Any help would be 
much appreciated.

Thanks!

Dustin Fawver

Sr. Help Desk Technician

Information Technology Services



P: 423-439-4648

itsh...@etsu.edu <mailto:itsh...@etsu.edu>

 <http://www.etsu.edu/helpdesk>



_ARSlist: "Where the Answers Are" and have been for 20 years_



---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus

_______________________________________________________________________________
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
"Where the Answers Are, and have been for 20 years"

Reply via email to