我最终得到了这个工作,但最终我决定使用 ws_tunnel 模块通过 apache 隧道我的 websockets 通信。
但是要回答我上面的问题,基本上你要做的就是根据你的网络服务器密钥创建一个新的 java 密钥库,然后用这个新的密钥库替换 apachemq java 密钥库。我一直无法成功地将密钥导入现有的密钥库。
例如,在我的 ubuntu 服务器上,我的密钥是:
SSLCertificateFile /etc/apache2/ssl/star_astracorp_com.crt
SSLCertificateKeyFile /etc/apache2/ssl/star_astracorp_com.key
SSLCertificateChainFile /etc/apache2/ssl/astracorp.com.intermediate.sha1.chcrt
然后我将密钥导出为 pkcs12:
openssl pkcs12 -export -in /etc/apache2/ssl/star_astracorp_com.crt -inkey /etc/apache2/ssl/star_astracorp_com.key -out server.p12 -name emsu1 -CAfile ca.crt -caname root
然后我将 pkcs12 导入新的 java 密钥库:
keytool -importkeystore -deststorepass password -destkeypass password -destkeystore server.keystore -srckeystore /etc/apache2/ssl/server.p12 -srcstoretype PKCS12 -srcstorepass password -alias emsu1
然后,在我的 apachemq 目录中,我将旧的 broker.ks 移开,并将 server.keystore 重命名为 kroker.ks 并重新启动 activemq。
我的一台服务器的密钥具有 .pem 文件。该过程仍然相似,但是我必须进入 OS X 的密钥库实用程序才能获取密钥的密码。
openssl pkcs12 -export -in /etc/certificates/ems-dev.local.EDA65671FF2C9CE7DAA56E9AD8E4E5F3F2675C79.cert.pem -inkey /etc/certificates/ems-dev.local.EDA65671FF2C9CE7DAA56E9AD8E4E5F3F2675C79.key.pem -out server.p12 -name emsdev -CAfile ca.crt -caname root
然后您将被要求提供密钥 - 从密钥 util 中复制并粘贴它。
那么,新建keystore的过程也是一样的:
keytool -importkeystore -deststorepass password -destkeypass password -destkeystore server.keystore -srckeystore /etc/certificates/server.p12 -srcstoretype PKCS12 -srcstorepass password -alias emsdev