关于Tomcat+nginx配置https登录的问题-问答-阿里云开发者社区-阿里云

开发者社区> 落地花开啦> 正文

关于Tomcat+nginx配置https登录的问题

2016-03-25 16:13:34 3223 1

我在配置Tomcat+nginx实现https登录中,有两点疑问:

  1. Tomcat是否需要在server.xml中配置证书,我在网上看到有人说Tomcat不需要配置证书;
  2. 我现在有几个测试证书文件:根证书root.cer、中级证书Intermediate.cer、SSL证书sslCert.cer和keystore文件,但在nginx中配置证书存在疑问,ssl_certificate 和ssl_certificate_key 不知该如何配置,网上大部分都是分别配置的.crt文件和.pem文件,我需要如何把我的对应证书进行转换?
取消 提交回答
全部回答(1)
  • 落地花开啦
    2019-07-17 19:14:37

    tomcat 需要在 server.xml 中配置证书
    部署证书到Tomcat
    Tomcat要求的是包含签名过证书的keystore文件和keystore密码。所以我们要先把证书导入keystore
    导入证书到KeyStore
    $JAVA_HOME/bin/keytool -import -alias oschina -trustcacerts -file oschina.p7s -keystore oschina.keystore
    上面的命令中 alias “oschina” 和之前申请证书的时候输入的 alias 要一致。
    修改Tomcat配置

    <Connector SSLEnabled="true" acceptCount="100" clientAuth="false"
            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的配置是否正确,如果都测试通过,那么就大功搞成啦!

    0 0
相关问答

11

回答

iphone设置阿里云邮箱的步骤

minioba 2013-04-24 22:04:37 101708浏览量 回答数 11

57

回答

为阿里云ECS(CentOS7)配置IPv6隧道地址

dongshan8 2016-06-17 13:51:32 104432浏览量 回答数 57

18

回答

阿里云开放端口权限

xcxx 2016-07-20 15:03:33 643127浏览量 回答数 18

38

回答

安全组详解,新手必看教程

我的中国 2017-11-30 15:23:46 256869浏览量 回答数 38

103

回答

为阿里云ECS(Windows 2012)创建IPv6隧道地址

dongshan8 2016-06-09 16:40:16 101444浏览量 回答数 103

249

回答

阿里云LNAMP(Linux + Nginx + Apache + MySQL + PHP)环境一键安装脚本

云代维 2014-02-14 15:26:06 302602浏览量 回答数 249

97

回答

Redhat/CentOS一键安装web环境全攻略

xiaofanqie 2011-08-11 14:51:38 123209浏览量 回答数 97

8

回答

mail.aliyun.com邮箱android手机客户端设置方法

jack_yang 2013-04-24 09:01:34 122080浏览量 回答数 8

27

回答

阿里云开源软件镜像站点上线啦!!

qilu 2014-01-06 18:14:06 95734浏览量 回答数 27

37

回答

【云服务器教程征集令】这个六一阿里云邀您来吐槽!

fanyue88888 2012-06-01 18:55:41 113743浏览量 回答数 37
+关注
落地花开啦
喜欢技术,喜欢努力的人
0
文章
7824
问答
推荐问答
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载