在启用 HTTPS 以前,你须要一个有效的证书,若是你已经有了一个有效的证书,你能够直接跳过这个步骤,进入 step 2。html
你能够建立一个自签名的证书,或者从信任的 Certificate Authority 中得到一个证书。apache
若是你的项目小组计划使用 Confluence 服务器移动 app。你须要你的证书是从信任的证书签发机构签发的。你不能使用自签名的证书或者从一个不信任的机构得到的证书,或者自由 CA。tomcat
选项 1: 建立一个自签名证书
当你须要进行加密,可是你并不须要对网站的的请求校验的话,自签名证书可以帮助你完成这个。在一般的状况下,你能够在你的测试环境下签发你的自签名证书,你也能够在你公司内部的网络上签发自签名证书。服务器
由于证书不是信任的组织签发的(CA),用户可能会收到站点不被信任,而且提供一个步骤让用户先肯定,才能访问网站的信息。这个一般是在第一次访问网站的时候出现的提示。若是你使用的 Confluence 的移动 app 的话,用户不能经过你的自签名证书访问你的 Confluence 站点。网络
在这个状况下,咱们须要使用 Java 的 keytool
工具包。这个工具包是包含在 JDK 中的。若是你对命令行工具并非十分熟悉的话,你能够考虑使用 KeyStore Explorer 工具。app
使用 keytool 来建立一个自签名证书:工具
- 从命令行中,为你的操做系统运行正确的命令:
Windows测试
"%JAVA_HOME%\bin\keytool" -genkeypair -keysize 2048 -alias tomcat -keyalg RSA -sigalg SHA256withRSA 网站 |
Linux (and MacOS)ui
$JAVA_HOME/bin/keytool -genkeypair -keysize 2048 -alias tomcat -keyalg RSA -sigalg SHA256withRSA |
- 当出现提示后,为你的证书建立 密码(password ),私有 key。
- 仅使用数字和英文字符。若是你使用了特殊字符,Tomcat 可能会出现错误。
- 请记录你建立的密码,在下一步中你须要使用到你建立的密码。
- 默认的密码是 '
changeit
'。
- 根据提示来肯定证书的细节。这些信息被用来构造 X.500 实体中的 Distinguished Name (DN) 。
- First and last name:这个不是你的名字,这个是 Common Name (CN),例如 'confluence.example.com'。CN 必须与 Confluence 使用的域名彻底对应,不然 Tomcat 将不能使用你签名的证书。
- Organizational unit:这个是证书使用的部门或者小组,例如 'marketing'。
- Organization:是你公司的名字,例如 'SeeSpaceEZ'。
- City, State / province, country code:这个是你公司的地理位置,例如 Sydney, NSW, AU。
- 输出将会以下所示。输入 '
y
' 来肯定你输入的内容。
- 当被询问为 'tomcat' 准备使用的 密码(password )的时候,输入你第二步中输入的密码(在输入密码后单击回车)。
- 'tomcat' 是你在 keytool 命令行中输入的别名,在这里用来对你提示。
- 你 keystore 实例必须和你的私有 key 有相同的密码。这个是 Tomcat 服务器要求的。
- 你的证书如今已经能够用了,进入 下面 的第二步。
选项 2: 使用 Certificate Authority 签发的证书(推荐)
在生产环境中,你须要使用从 Certificate Authority (CA) 签发的证书。下面的内容是从 Tomcat documentation 中拷贝出来的。
首先你须要建立本地证书,而后基于你建立的本地证书再建立一个 'certificate signing request' (CSR) 。你须要提交 CSR 到你的选择的 CA 提供商上进行收取。CA 将会经过 CSR 将受权后的证书发给你。
- 使用 Java 的
keytool
工具来建立一个本地证书(请按照上面第一步所描述的内容)。
- 从命令中,将会返回下面的命令工具来建立所须要前面的证书。
keytool -certreq -keyalg RSA -alias tomcat -file certreq.csr -keystore <MY_KEYSTORE_FILENAME> |
替换 <MY_KEYSTORE_FILENAME>
为路径和你本地证书建立 .keystore
的文件名。
- 提交建立的文件为
certreq.csr
到你但愿进行受权的 CA。
请参考 CA 的文档来找到如何进行这个操做。
- CA 将会发个你已经签名好的证书。
- 导入新证书到你的本地的 keystore:
keytool -importcert -alias tomcat -keystore <MY_KEYSTORE_FILENAME> -file <MY_CERTIFICATE_FILENAME> |
一些 CA 可能要求你在安装你的证书以前先安装一个中间人证书。你应该按照 CA 提供的文档来完成你本地证书的成功安装。
若是你使用的是 Verisign 或 GoDaddy,而后你收到了错误的信息,你可能须要将 PKCS12 和你的私钥(private key)同时导出。
- 首先,删除添加到 keystore 中的全部 key:
keytool -delete -alias tomcat -keystore <MY_KEYSTORE_FILENAME> |
- 而后导出为 PKCS12 格式:
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 |
- 而后导入 PKCS12 到 jks 中:
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