I'm making progress setting up SSL certificates with Play, but could still use help.
I've created a Java keyStore from my GlobalSign certificates:
#!/bin/bash
pass=aaaaaa
ksName=advising.jks
certs=advising-cert
cat $certs/foo.bar.ca.crt $certs/foo.bar.ca.key >advising-combined.crt
keytool -storepass $pass -importcert \
-alias root -keystore $ksName \
-file $certs/globalsign-root.crt
keytool -storepass $pass -importcert \
-alias intermediate -keystore $ksName \
-file $certs/globalsign-intermediate.crt
keytool -storepass $pass -importcert \
-alias advising -keystore $ksName \
-file advising-combined.crt
Can anyone confirm the validity of that step?
I've put the resulting advising.jks file in conf/certs/advising.jks and start Play with
sudo play -Dhttp.port=80 -Dhttps.port=443 \
-Dhttps.keyStore="conf/cert/advising.jks" \
-Dhttps.keyStoreType="jks" \
-Dhttps.keyStorePassword="aaaaaa" \
run
Previously Play silently ignored my blatantly wrong attempts, so I moved the loading of the keystore inside an existing try-catch block in NettyServer.scala (see pull #1236) and rebuilt Play. It now complains if my keystore is blatantly wrong (ie my first attempts); it does not complain about the keystore produced as above.
"keytool -list -keystore advising.jks" produces reasonable-looking output.
Nevertheless, Safari says it "can't establish a secure connection to the server", Chrome says "Error 113 (net::ERR_SSL_VERSION_OR_CIPHER_MISMATCH): Unknown error.", and Firefox says "Cannot communicate securely with peer: no common encryption algorithm(s). (Error code: ssl_error_no_cypher_overlap)".
When I run "openssl s_client -showcerts -connect
foo.bar.ca:443" it says
CONNECTED(00000003)
20056:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure:/SourceCache/OpenSSL098/OpenSSL098-47.1/src/ssl/s23_clnt.c:602:
I have no clue what that means.
When I run "sslscan
foo.bar.ca" it reports that every Supported Server Cipher it checks is rejected.
I ran sslscan and openssl with Play using its self-signed certificate. They both returned reasonable output.
Any guidance on how to proceed would be very welcome.