我配置好一个tomcat,ssl证书,如何给同一台机器上的其他tomcat配置证书,默认的80,443端口已经被占用。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我配置好一个tomcat,ssl证书,如何给同一台机器上的其他tomcat配置证书,默认的80,443端口已经被占用。相关的知识,希望对你有一定的参考价值。

看清问题,我是一个已经配置好了,问的是如何给同一台机器上的第二个tomcat,配置ssl,因为ssl默认配置是80,443,已经配置用了,第二个tomcat应该怎么配ssl。

您好!

直接使用多域名或者通配符证书就可以了,这样可以实现一台服务器配置多个域名SSL。

如果tomcat环境支持配置多个独立的SSL证书参考:

<Connector port="443" protocol="org.apache.coyote.http11.Http11Nio2Protocol" defaultSSLHostConfigName="www.aaa.com" 
               maxThreads="150" SSLEnabled="true" >
        <SSLHostConfig hostName="www.aaa.com">
            <Certificate certificateKeystoreFile="cert/aaa.jks" certificateKeystorePassword="password1" type="RSA" />
        </SSLHostConfig>
          <SSLHostConfig hostName="www.bbb.com">
              <Certificate certificateKeystoreFile="cert/bbb.jks" certificateKeystorePassword="password2" type="RSA" />
          </SSLHostConfig>
    </Connector>
    </Connector>

<Host name="www.aaa.com"  appBase="webapps" unpackWARs="true" autoDeploy="true"><Context path="" docBase="aaa" reloadable="true" debug="0" /></Host>
        <Host name="www.bbb.com"  appBase="webapps" unpackWARs="true" autoDeploy="true"><Context path="" docBase="bbb" reloadable="true" debug="0" /></Host>

参考技术A 楼主解决了吗?多个tomcat的话,只能是其他端口,我试过了,http使用8081,对应的https使用445,(如果这两个端口没使用的话,使用了可以换其他的),然后和第一个配置修改方式一致,只是服务启动后访问都会带有端口号而已,不像第一个都是默认端口,直接省略端口了 参考技术B 您好!SSL证书不受浏览器信任有几种情况:1、自签名SSL证书。2、不支持所有浏览器的SSL证书3、过期的SSL证书4、https页面存在不安全因素5、sha1算法,并且签发到2017年的证书。6、浏览器指定的不信任的证书。你的这种情况,应该是UC和手机自带浏览器不信任该证书,你可要用谷歌浏览器测试下。另外,看看您的手机上的时间是否与网络同步。我用的是wosign免费SSL证书,手机端和pc端均能完美显示。希望可以帮助到你。

TOMCAT SSL 错误:别名不能识别密钥条目

【中文标题】TOMCAT SSL 错误:别名不能识别密钥条目【英文标题】:TOMCAT SSL Error: Alias name does not identify a key entry 【发布时间】:2012-02-06 15:37:54 【问题描述】:

我正在尝试使用 SSL 和(由某人)提供给我们的证书来配置 Tomcat 6。我的 SSL 体验只持续了几天,但我仍然需要配置该死的东西。

我获得了 DER 格式的证书(从 IE 下载)。

接下来我创建了一个密钥库:

keytool -import -alias btIEgen -file MyCompany.der -keystore b2b.keystore

假设我使用“密码”作为密码

我在 Tomcat 的 server.xml 的 SSL 部分中配置了这个:

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
    maxThreads="150" scheme="https" secure="true"
    keystoreFile="webapps/b2b.keystore" keystorePass="password" keyAlias="btIEgen" 
    clientAuth="false" sslProtocol="TLS" />

在启动 Tomcat 时出现该死的错误。

然后我在 b2b.keystore 上做了一个 keytool -list,并注意到别名都是小写的,所以在更新 server.xml 并重新启动后,我仍然得到同样的错误,但对于小写的别名。

然后我认为也许我需要一个根 CA。所以我重新创建了 b2b.keystore 如下:

keytool -import -alias root -file myCA.cer -keystore b2b.keystore

然后我针对 MyCompany.der 重新执行了我的 keytool 命令

但我仍然得到同样的错误,别名没有识别关键条目。

我想知道我在配置 tomcat 时是否犯了一些基本错误,或者这件事是否应该正常工作而我只是犯了一个愚蠢的粗心错误?

任何指导将不胜感激。

【问题讨论】:

【参考方案1】:

Tomcat 需要的是证书和它的私钥。证书是您的任何用户都可以看到的公共信息,但私钥应该是您的专有密钥:这是防止其他人使用您的证书运行网站的原因。通过导入MyCompany.der,您只是在导入证书。

你需要先找到你的私钥在哪里。 (通常情况下,即使是向您颁发证书的人也不应该知道其私钥。)

私钥可能是在证书申请过程中在您的浏览器中生成的。尝试查看是否可以以.p12/.pfx (PKCS#12) 格式导出:如果私钥在那里,这也应该捆绑私钥。如果是这样,您应该可以使用PKCS12 存储类型直接将生成的文件用作密钥库:keystoreFile="store.pfx" keystorePass="password" keystoreType="PKCS12"(您可能不需要密钥别名,因为只有一个密钥条目)。

【讨论】:

谢谢,遇到了同样的问题。 .pfx 证书改变了这一切:-) 删除 keyAlias 行是我的解决方案。我们的证书负责人没有像过去那样为密钥-证书对指定别名。 很多站点都在引入将.cer文件导入站点keystore的方式,那么,私钥存放在哪里呢?第一次创建 .csr 时,它不是已经在站点密钥库文件中了吗? 我必须添加 keyAlias="1" 以使 tomcat 忽略它。否则它将继续寻找名为“tomcat”的别名。 这也可能是因为证书作为可信证书 (trustedcertificate) 而不是作为对证书请求的回复导入到密钥库中。在这种情况下,tomcat 也会产生这样的错误。如果无法导入证书作为对 CSR 的回复,那么可能是由于之前未导入中间证书和根证书(keytool 无法验证证书真实性)> 导入中间证书和根证书之前然后导入正确的证书作为回复csr.

以上是关于我配置好一个tomcat,ssl证书,如何给同一台机器上的其他tomcat配置证书,默认的80,443端口已经被占用。的主要内容,如果未能解决你的问题,请参考以下文章

tomcat中给网站配置SSL证书(https)

Tomcat从安装到配置Https SSL证书

tomcat 配置ssl

微信小程序所需要的Https访问配置

如何配置tomcat证书

TOMCAT SSL 错误:别名不能识别密钥条目