在启用 HTTPS 之前,你需要一个有效的证书,如果你已经有了一个有效的证书,你可以直接跳过这个步骤,进入 step 2。
你可以创建一个自签名的证书,或者从信任的 Certificate Authority 中获得一个证书。
如果你的项目小组计划使用 Confluence 服务器移动 app。你需要你的证书是从信任的证书签发机构签发的。你不能使用自签名的证书或者从一个不信任的机构获得的证书,或者自由 CA。
当你需要进行加密,但是你并不需要对网站的的请求校验的话,自签名证书能够帮助你完成这个。在通常的情况下,你可以在你的测试环境下签发你的自签名证书,你也可以在你公司内部的网络上签发自签名证书。
因为证书不是信任的组织签发的(CA),用户可能会收到站点不被信任,并且提供一个步骤让用户先确定,才能访问网站的信息。这个通常是在第一次访问网站的时候出现的提示。如果你使用的 Confluence 的移动 app 的话,用户不能通过你的自签名证书访问你的 Confluence 站点。
在这个情况下,我们需要使用 Java 的 keytool
工具包。这个工具包是包含在 JDK 中的。如果你对命令行工具并不是十分熟悉的话,你可以考虑使用 KeyStore Explorer 工具。
使用 keytool 来创建一个自签名证书:
"%JAVA_HOME%\bin\keytool"
-genkeypair -keysize 2048
-alias tomcat -keyalg RSA -sigalg SHA256withRSA
Linux (and MacOS)
$JAVA_HOME/bin/keytool -genkeypair -keysize 2048
-alias tomcat -keyalg RSA -sigalg SHA256withRSA
changeit
'。y
' 来确定你输入的内容。 CN=
confluence.example.com,
OU=Marketing, O=SeeSpaceEZ, L=Sydney, ST=NSW, C=AU
在生产环境中,你需要使用从 Certificate Authority (CA) 签发的证书。下面的内容是从 Tomcat documentation 中拷贝出来的。
首先你需要创建本地证书,然后基于你创建的本地证书再创建一个 'certificate signing request' (CSR) 。你需要提交 CSR 到你的选择的 CA 提供商上进行收取。CA 将会通过 CSR 将授权后的证书发给你。
keytool
工具来创建一个本地证书(请按照上面第一步所描述的内容)。keytool -certreq -keyalg RSA -alias tomcat -file certreq.csr -keystore <MY_KEYSTORE_FILENAME> |
---|
certreq.csr
到你希望进行授权的 CA。
请参考 CA 的文档来找到如何进行这个操作。
keytool -importcert -alias tomcat -keystore <MY_KEYSTORE_FILENAME> -file <MY_CERTIFICATE_FILENAME> |
---|
如果你使用的是 Verisign 或 GoDaddy,然后你收到了错误的信息,你可能需要将 PKCS12 和你的私钥(private key)同时导出。
keytool -delete -alias tomcat -keystore <MY_KEYSTORE_FILENAME> |
---|
openssl pkcs12 -export -in <MY_CERTIFICATE_NAME> -inkey <MY_PRIVATEKEY_NAME> -out <MY_PKC12_KEYSTORE_NAME> -name tomcat -CAfile <MY_ROOTCERTIFICATE_NAME-alsoCalledBundleCertificateInGoDaddy> -caname root |
---|
keytool -importkeystore -deststorepass <MY_DESTINATIONSTORE_PASSWORD> -destkeypass <MY_DESTINATIONKEY_PASSWORD> -destkeystore <MY_KEYSTORE_FILENAME> -srckeystore <MY_PKC |
---|
https://www.cwiki.us/display/CONF6ZH/Running+Confluence+Over+SSL+or+HTTPS