tomcat 需要在 server.xml 中配置证书 部署证书到TomcatTomcat要求的是包含签名过证书的keystore文件和keystore密码。所以我们要先把证书导入keystore 导入证书到KeyStore $JAVA_HOME/bin/keytool -import -alias oschina -trustcacerts -file oschina.p7s -keystore oschina.keystore上面的命令中 alias “oschina” 和之前申请证书的时候输入的 alias 要一致。 修改Tomcat配置
disableUploadTimeout="true" enableLookups="false" maxThreads="25"
port="8443" keystoreFile="/oschina/webapp/oschina.keystore" keystorePass="xxxxxxx"
protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="https"
secure="true" sslProtocol="TLS" />
部署证书到Nginx Nginx和Tomcat不一样,它要求的是证书文件 .crt 和私钥 .key 。遗憾的是,我们的私钥在keystore里面,而JDK自带的keytool并不提供私钥的导出功能,所以我们得借助第三方工具来导出私钥。导出私钥(key) 有一个开源的私钥导出工具叫做 java-exportpriv 。它是一个简单的java程序,你下载以后参考它的说明,编译,然后运行即可,非常简单,我就不多罗嗦了。 创建certificate chain和Apache不一样,Nginx没有Certificat Chain这个参数,所以你要把你的证书和中间证书合并。合并证书很简单,创建一个先的文件 oschina-chain.crt,内容如下: -----BEGIN CERTIFICATE----- 这里是你证书的内容 -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- 这里是中间证书的内容 -----END CERTIFICATE----- 修改Nginx配置文件
server {
listen 443 ssl;
server_name localhost;
ssl on;
ssl_certificate /oschina/webapp/oschina-chain.crt;
ssl_certificate_key /oschina/webapp/oschina.key;
location / {
include proxy.conf;
proxy_pass https://61.145.122.155:443;
}
验证证书是否安装正确 首先当然是自己用HTTPS的方式访问自己的网站,看看浏览器是否报错或者报警,记得要把各种浏览器都试一遍。然后用 在线工具来测试你的网站HTTPS的配置是否正确,如果都测试通过,那么就大功搞成啦!