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 certificatesFirst, 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="-ALLECDHE-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 askforhelp. 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. MarkThanks 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 atorg.apache.catalina.connector.Connector.initInternal(Connector.java:1011)at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:127) atorg.apache.catalina.core.StandardService.initInternal(StandardService.java:554)at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:127) atorg.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) atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)atsun.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 notrecognisedat 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) atorg.apache.coyote.http11.AbstractHttp11Protocol.init(AbstractHttp11Protocol.java:75)atorg.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 notrecognisedat 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