Sure, I can provide the entire setup for you.   I'll work on that tonight .

On Sun, Mar 31, 2024 at 2:05 PM Mark Thomas <ma...@apache.org> wrote:

> On 25/03/2024 16:56, Timothy Resh wrote:
> > Sorry for the delay.  Our certificate creation process was automated
> > several years ago and I had to go through the code to figure out the
> > commands being used for the certificates
> >
> > First, we use the createcert.exe from the Sybase 17 installation to
>
> I don't have access to that application so I am unable to follow the
> provided instructions.
>
> Given you do have access to the application, it will likely be simpler
> if you provide a test key and certificate that don't work that we can
> use for investigation.
>
> If you want to provide those offline, feel free to email the pem files
> to me directly.
>
> Mark
>
>
> > generate a DB cert for ODBC connectivity.  Please see the following link
> > for more information.
> >
> https://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.help.sqlanywhere.12.0.1/dbadmin/gencert-ml-ref1.html
> > -t encryption type
> > -b length
> > -ca "1"  Create Certificate Authority
> > -u 3,4,5,6
> >
> >     - 3. Key Encipherment
> >     - 4. Data Encipherment
> >     - 5. Key Agreement
> >     - 6. Certificate Signing
> >
> > -v 6 years
> > -co Public Certificate
> > -x Generates a self-signed certificate
> >
> > *C:\tmp12>ECHO. | "C:\Program Files\SQL Anywhere 17\Bin64\createcert.exe"
> > -t "rsa" -b "2048" -ca "1" -io "C:\tmp12\DB\Application Certificate
> > Files\Private Keys\ASA12 SAMM Vessel.pem" -ko "C:\tmp12\DB\Application
> > Certificate Files\Private Keys\ASA12 SAMM Vessel.key" -kp "changeit" -x
> -co
> > "C:\tmp12\DB\Application Certificate Files\Public Keys\ASA12 SAMM
> > Vessel.pub" -sc "US" -scn "WSD-2DNX4M3.mydomain.com
> > <http://WSD-2DNX4M3.mydomain.com>" -sl "Norfolk" -so "Vessel Ships" -sou
> > "Engineering" -sst "VA" -u 3,4,5,6 -v "6"*
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > *SQL Anywhere X.509 Certificate Generator Version 17.0.10.6160Warning:
> The
> > certificate will not be compatible with older versionsof the software
> > including version 12.0.1 prior to build 3994 and version 16.0prior to
> build
> > 1691. Use the -3des switch if you require compatibility.Generating key
> > pair...Certificate will be a self-signed rootSerial number [generate
> GUID]:
> > Generated serial number: 42455c10a27d441db3e3d09f39f35452*
> >
> >
> > This creates a  ASA12 SAMM Vessel.pub  that is then copied to the Tomcat
> > Application Server as "Client Configuration.pem"
> >
> > our next commands are all openssl or keytool
> >
> > openssl.exe genrsa -aes256 -passout pass:"changeit" -out
> > "C:\tmp12\Certificate\Private Key\WSD-2DNX4M3.mydomain.com.key" 2048
> > 1>nul 2>&1
> > openssl.exe req -new -key "C:\tmp12\Certificate\Private
> > Key\WSD-2DNX4M3.mydomain.com.key" -subj "/CN=
> > WSD-2DNX4M3.mydomain.com/OU=USN/OU=PKI/OU=DoD/O=U.S.Government/C=US"
> -out
> > "C:\tmp12\Certificate\Keystore\WSD-2DNX4M3.mydomain.com.csr" -passin
> > pass:"changeit"    1>nul 2>&1
> >
> > echo basicConstraints = CA:FALSE  1>"C:\tmp12\openssl\v3.ext"
> > echo keyUsage = digitalSignature, keyEncipherment
> >   1>>"C:\tmp12\openssl\v3.ext"
> > ECHO [SAN]   1>>"C:\tmp12\openssl\v3.ext"
> > ECHO subjectAltName=DNS:WSD-2DNX4M3.mydomain.com
> > 1>>"C:\tmp12\openssl\v3.ext"
> >
> > openssl.exe x509 -req -extfile "C:\tmp12\openssl\v3.ext" -signkey
> > "C:\tmp12\Certificate\Private Key\WSD-2DNX4M3.mydomain.com.key" -in
> > "C:\tmp12\Certificate\Keystore\WSD-2DNX4M3.mydomain.com.csr" -out
> > "C:\tmp12\Certificate\Public Key\WSD-2DNX4M3.mydomain.com.cer" -passin
> > pass:"changeit" -days "2190" -extensions SAN
> > Certificate request self-signature ok
> > subject=CN = WSD-2DNX4M3.mydomain.com, OU = USN, OU = PKI, OU = DoD, O =
> > U.S.Government, C = US
> >
> > COPY "C:\tmp12\Certificate\Public Key\WSD-2DNX4M3.mydomain.com.cer"
> > "C:\tmp12\Certificates\CA\"   1>nul 2>&1
> >
> > openssl.exe pkcs12 -export -in "C:\tmp12\Certificate\Public
> > Key\WSD-2DNX4M3.mydomain.com.cer" -inkey "C:\tmp12\Certificate\Private
> > Key\WSD-2DNX4M3.mydomain.com.key" -out "C:\tmp12\Certificate\Private
> > Key\WSD-2DNX4M3.mydomain.com.p12" -name WSD-2DNX4M3.mydomain.com -CAfile
> > "C:\tmp12\Certificate\Public Key\WSD-2DNX4M3.mydomain.com.cer" -caname
> > WSD-2DNX4M3.mydomain.com -passin pass:"changeit" -passout
> pass:"changeit"
> >
> > keytool.exe -importkeystore -deststorepass "changeit" -destkeypass
> > "changeit" -destkeystore "C:\tmp12\Certificate\Keystore\Vessel.jks"
> > -srckeystore "C:\tmp12\Certificate\Private
> > Key\WSD-2DNX4M3.mydomain.com.p12" -srcstoretype PKCS12 -srcstorepass
> > "changeit" -alias WSD-2DNX4M3.mydomain.com
> > Importing keystore C:\tmp12\Certificate\Private
> > Key\WSD-2DNX4M3.mydomain.com.p12 to
> > C:\tmp12\Certificate\Keystore\Vessel.jks...
> > DEL /Q "C:\tmp12\Certificate\Private Key\WSD-2DNX4M3.mydomain.com.p12"
> >
> > openssl.exe rsa -in "C:\tmp12\Certificate\Private
> > Key\WSD-2DNX4M3.mydomain.com.key" -out "C:\tmp12\Certificate\Private
> > Key\WSD-2DNX4M3.mydomain.com.key.2" -passin pass:"changeit"
> > openssl.exe rsa -aes256 -in "C:\tmp12\Certificate\Private
> > Key\WSD-2DNX4M3.mydomain.com.key.2" -out "C:\tmp12\Certificate\Private
> > Key\WSD-2DNX4M3.mydomain.com.key.3" -passin pass:"changeit" -passout
> > pass:"changeit"
> > openssl.exe pkcs8 -topk8 -v1 PBE-SHA1-3DES -in
> > "C:\tmp12\Certificate\Private Key\WSD-2DNX4M3.mydomain.com.key.3" -out
> > "C:\tmp12\Certificate\Private Key\WSD-2DNX4M3.mydomain.com.key" -passin
> > pass:"changeit" -passout pass:"changeit"
> >
> > DEL /Q "C:\tmp12\Certificate\Private Key\WSD-2DNX4M3.mydomain.com.key.2"
> > DEL /Q "C:\tmp12\Certificate\Private Key\WSD-2DNX4M3.mydomain.com.key.3"
> >
> > keytool.exe -importkeystore -srckeystore
> > "C:\tmp12\Certificate\Keystore\Vessel.jks" -destkeystore
> > "C:\tmp12\Certificate\Keystore\Vessel.p12" -srcstoretype JKS
> -deststoretype
> > PKCS12 -srcstorepass "changeit" -deststorepass "changeit" -noprompt
> > keytool.exe -delete -alias "ASA12 SAMM Vessel Temporary CA" -keystore
> > "C:\tmp12\Certificate\Keystore\Vessel.p12" -storepass "changeit"
> -noprompt
> > keytool.exe -delete -alias "ASA12 SAMM Vessel" -keystore
> > "C:\tmp12\Certificate\Keystore\Vessel.p12" -storepass "changeit"
> -noprompt
> > keytool.exe -delete -alias "WSD-2DNX4M3.mydomain.com" -keystore
> > "C:\tmp12\Certificate\Keystore\Vessel.p12" -storepass "changeit"
> -noprompt
> > keytool.exe -import -alias "ASA12 SAMM Vessel" -file "C:\tmp12\Client
> > Configuration.pem" -keystore "C:\tmp12\Certificate\Keystore\Vessel.p12"
> > -storepass "changeit" -noprompt
> > keytool.exe -import -trustcacerts -alias "ASA12 SAMM Vessel Temporary CA"
> > -file "C:\tmp12\Client Configuration.pem" -keystore
> > "C:\tmp12\Certificate\Keystore\Vessel.p12" -storepass "changeit"
> -noprompt
> >
> >
> > if you need anything else please get in touch with me.
> > I have tested this with the Tomcat 87 release and it still does not work.
> >
> > Thanks
> >
> > Mark Resh
> >
> >
> >
> >
> > On Tue, Mar 19, 2024 at 4:15 PM Mark Thomas <ma...@apache.org> wrote:
> >
> >> On 19/03/2024 18:18, Timothy Resh wrote:
> >>> <Conneector ........
> >>> SSLProtocol="TLSv1.2"
> >>> SSLCipherSuite="-ALL
> >>>
> >>
> ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256"
> >>>
> >>>       SSLPassword="${KSENC(6qkaMErQ==;
> >> C:\Certificate\Keystore\Vessel.p12)}"
> >>> SSLCertificateChainFile="C:Certificate\Public
> Key\WSD-2DNX4M3.......cer"
> >>> SSLCertificateFile="C:\Certificate\Public Key\WSD-2DNX4M3.......cer"
> >>> SSLCertificateKeyFile="C:\Certificate\Private Key\WSD-2DNX4M3......key"
> >>> SSLVerifyClient="optional"
> >>> SSLCACertificateFile="C:\Certificates\CA\intermediate.ca"
> >>> SSLCACertificatePath="C:\Certificates\CA\"
> >>>>
> >>>
> >>> where the ..... is the fqdn
> >>>
> >>> This works fine *until* Tomcat 9.0.83 and now we get the following
> listed
> >>> below. I have read some of the
> >>> https://bz-he-de.apache.org/bugzilla/show_bug.cgi?id=67675 bugs and
> ask
> >> for
> >>> help.
> >>> The certificates are being created using openssl 3.013.  Please note
> the
> >>> encrypted password to the p12 keystore.  There was a message saying
> this
> >>> was going to be fixed in a January release.
> >>> I just tested 9.0.87 and the error is the same.  The ASN.1 is  OBJECT
> >>> IDENTIFIER=Sha256WithRSAEncryption (1.2.840.113549.1.1.11)
> >>>
> >>> Does anyone have some suggestions for a fix?
> >>
> >> Please provide a set of OpenSSL commands that create a problematic,
> >> self-signed certificate for localhost. This will save us a *lot* of
> time.
> >>
> >> Mark
> >>
> >>
> >>>
> >>> Thanks Mark Resh
> >>>
> >>>
> >>> 15-Mar-2024 18:27:37.621 WARNING [main]
> >>> org.apache.tomcat.util.net.SSLUtilBase.getEnabled Tomcat interprets
> the
> >>> [ciphers] attribute in a manner consistent with the latest OpenSSL
> >>> development branch. Some of the specified [ciphers] are not supported
> by
> >>> the configured SSL engine for this connector (which may use JSSE or an
> >>> older OpenSSL version) and have been skipped:
> >>> [[TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,
> >>> TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256]]
> >>> 15-Mar-2024 18:27:37.636 SEVERE [main]
> >>> org.apache.catalina.util.LifecycleBase.handleSubClassException Failed
> to
> >>> initialize component [Connector["https-openssl-apr-192.168.56.1-8443"]]
> >>> org.apache.catalina.LifecycleException: Protocol handler initialization
> >>> failed
> >>> at
> >>
> org.apache.catalina.connector.Connector.initInternal(Connector.java:1011)
> >>> at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:127)
> >>> at
> >>>
> >>
> org.apache.catalina.core.StandardService.initInternal(StandardService.java:554)
> >>> at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:127)
> >>> at
> >>>
> >>
> org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:1039)
> >>> at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:127)
> >>> at org.apache.catalina.startup.Catalina.load(Catalina.java:724)
> >>> at org.apache.catalina.startup.Catalina.load(Catalina.java:746)
> >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >>> at
> >>>
> >>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> >>> at
> >>>
> >>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> >>> at java.lang.reflect.Method.invoke(Method.java:498)
> >>> at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:307)
> >>> at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:477)
> >>> Caused by: java.lang.IllegalArgumentException: The PKCS#8 encryption
> >>> algorithm with DER encoded OID of [2a864886f70d010c0103] was not
> >> recognised
> >>> at
> >>> org.apache.tomcat.util.net
> >> .AprEndpoint.createSSLContext(AprEndpoint.java:467)
> >>> at org.apache.tomcat.util.net.AprEndpoint.bind(AprEndpoint.java:433)
> >>> at
> >>> org.apache.tomcat.util.net
> >> .AbstractEndpoint.bindWithCleanup(AbstractEndpoint.java:1332)
> >>> at
> >>> org.apache.tomcat.util.net
> >> .AbstractEndpoint.init(AbstractEndpoint.java:1345)
> >>> at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:654)
> >>> at
> >>>
> >>
> org.apache.coyote.http11.AbstractHttp11Protocol.init(AbstractHttp11Protocol.java:75)
> >>> at
> >>
> org.apache.catalina.connector.Connector.initInternal(Connector.java:1009)
> >>> ... 13 more
> >>> Caused by: java.security.NoSuchAlgorithmException: The PKCS#8
> encryption
> >>> algorithm with DER encoded OID of [2a864886f70d010c0103] was not
> >> recognised
> >>> at
> >>> org.apache.tomcat.util.net
> >> .jsse.PEMFile$Part.toPrivateKey(PEMFile.java:379)
> >>> at org.apache.tomcat.util.net.jsse.PEMFile.<init>(PEMFile.java:213)
> >>> at org.apache.tomcat.util.net.jsse.PEMFile.<init>(PEMFile.java:141)
> >>> at
> >>> org.apache.tomcat.util.net
> >> .SSLUtilBase.getKeyManagers(SSLUtilBase.java:355)
> >>> at
> >>> org.apache.tomcat.util.net
> >> .openssl.OpenSSLUtil.getKeyManagers(OpenSSLUtil.java:108)
> >>> at
> >>> org.apache.tomcat.util.net
> >> .SSLUtilBase.createSSLContext(SSLUtilBase.java:268)
> >>> at
> >>> org.apache.tomcat.util.net
> >> .AprEndpoint.createSSLContext(AprEndpoint.java:465)
> >>> ... 19 more
> >>> 15-Mar-2024 18:27:37.636 INFO [main]
> >>> org.apache.catalina.startup.Catalina.load Server initialization in
> [1655]
> >>> milliseconds
> >>>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> >> For additional commands, e-mail: users-h...@tomcat.apache.org
> >>
> >>
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@tomcat.apache.org
>
>

Reply via email to