VincentHermes opened a new issue #4199:
URL: https://github.com/apache/cloudstack/issues/4199


   #### ISSUE TYPE
    * Other / HTTPS
   
   #### COMPONENT NAME
    * Webserver
   
   #### CLOUDSTACK VERSION
    * 4.14
   
   #### CONFIGURATION
    * server.properties:
   `https.enable=true`
   `https.port=8443`
   `https.keystore=/etc/cloudstack/management/thecurrentkeystore.pkcs12`
   `https.keystore.password=currentkeystorepassword`
   
    * Firewall disabled
   
   
   
   #### OS / ENVIRONMENT
    * CentOS7
    * MGMT Server on VMWare
    * Cloudstack 4.14
    * Java 11
    * OpenSSL 1.0.2k-fips
   
   
   #### SUMMARY
    We are not able to access the 4.14 Webserver over HTTPS after upgrading 
from a functioning 4.13. The Webserver seems to not send anything back. If we 
curl the https it just loads infinitely:
   `# curl -v https://localhost:8443/client`
   `* About to connect() to localhost port 8443 (#0)`
   `*   Trying ::1...`
   `* Connected to localhost (::1) port 8443 (#0)`
   `* Initializing NSS with certpath: sql:/etc/pki/nssdb`
   `*   CAfile: /etc/pki/tls/certs/ca-bundle.crt`
   `  CApath: none`
   `....(waits)`
   
   Previous investigations regarding networking etc can be seen here:
   
https://lists.apache.org/thread.html/r50fa6f94dae308a598eb2eeb738f4325e29814d8da83de8558bccfb2%40%3Cusers.cloudstack.apache.org%3E
   
   _Using a self-signed certificate actually works, only when using an adequate 
certificate (wildcard in our case) it stops functioning_
   
   
   
   #### Commands used:
   _Combine Files_
   `cat key.key servercert.crt intermediate.crt root.crt > combined.crt`
   
   _Create Keystore_
   `openssl pkcs12 -in combined.crt -export -out combined.pkcs12`
   
   _Import Keystore_
   `keytool -importkeystore -srckeystore combined.pkcs12 -srcstoretype PKCS12 
-destkeystore /etc/cloudstack/management/combined.pkcs12 -deststoretype pkcs12`
   
   _Then change https.keystore= and https.keystore.password= accordingly and 
restart cloudstack-management_
   
   
   
   #### Logs found:
   `2020-06-29 12:01:02,052 INFO  [o.e.j.s.h.ContextHandler] (main:null) 
(logid:) Started 
o.e.j.w.WebAppContext@311bf055{/client,file:///usr/share/cloudstack-management/webapp/,AVAILABLE}{/usr/share/cloudstack-management/webapp}`
   `2020-06-29 12:01:02,053 INFO  [o.e.j.s.h.ContextHandler] (main:null) 
(logid:) Started o.e.j.s.h.MovedContextHandler@451001e5{/,null,AVAILABLE}`
   `2020-06-29 12:01:02,076 INFO  [o.e.j.s.AbstractConnector] (main:null) 
(logid:) Started ServerConnector@6f46426d{HTTP/1.1,[http/1.1]}{0.0.0.0:8080}`
   `2020-06-29 12:01:02,090 INFO  [o.e.j.u.s.SslContextFactory] (main:null) 
(logid:) x509=X509@25c6abfa(1,h=[our acual domain name],w=[our domain name 
again]) for 
SslContextFactory@4991c0f7[provider=null,keyStore=file:///etc/cloudstack/management/combined.pkcs12,trustStore=null]`
   
   
   
   #### Things tried:
   
   * Tested Firefox, Chrome, Edge, IE
   * Cache cleared / Private Mode
   * Multiple Client Systems
   * Numerous combinations of key-cert-intermediate-root when generating the 
pkcs12
   * Keystore only with key and server certificate without any CA's
   * Different Certificate Vendors (2 different Wildcard Certificates, Sectigo 
and Digicert/RapidSSL)
   * Generated Certificate via internal Domains Certificate Authority
   * Checked all certificate combinations via certutil in Windows Powershell
   * Changed keystore password to minimal ones without special characters (e.g. 
123456)
   * Changed the `https.port` to any other Port in `server.properties`
   * Switched back to java-1.8.0 - of course management server failed to start
   * Uploaded certificate chain via 8080 Web GUI - Found working combination of 
cert-intermediate-root to work with by opening console proxy in separate window 
and checking certificate validity
   * Definitely working combination (for firefox) gets the same outcome when 
being used as pkcs12
   * Updating to a newer Openssl Version fails because its the newest for 
CentOS7
   * Just in case it has an impact - Outcommented `jdk.tls.disabledAlgorithms` 
in `java.security.ciphers` 
   
   #### Further Investigations:
   * If we change the keystore password to nonsense it makes no difference
   * If we change the keystore name or path to nonsense it almost instantly 
says that the Website is unreachable and does not load infinitely and curl says 
Connection Refused
   * Fresh Install shows the same behaviour
   
   
   
   
   
   #### STEPS TO REPRODUCE
   * Install Cloudstack 4.14 on CentOS7 (No need to configure Infrastructure)
   * Create Keystore and configure HTTPS
   * Try to get https://mymgmtserver.mydomain.de:8443/client to respond
   
   
   #### EXPECTED RESULTS
   * A response from 8443 as it has been before the upgrade or at least an SSL 
error regarding a wrong certificate
   
   #### ACTUAL RESULTS
   * Webserver not responding / loading forever no matter what certificate is 
used
   * Actually it isn't really "not responding" as it is in fact trying to 
communicate but nothing happens
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to