当前位置: 首页 > 知识库问答 >
问题:

为Tomcat配置SSL有哪些步骤?

颛孙博易
2023-03-14

我对在本地计算机上为Tomcat配置SSL有点困惑。首先,我应该需要用keytool创建一个新的keystore吗?然后,我是否应该将现有. pfx证书文件导入到新创建的java密钥库(。jks文件)?最后,导出一个新的blabla.pfx文件,并添加一个在443端口上运行的新连接器,如下所示:

<Connector SSLEnabled="true" acceptCount="100" clientAuth="false" disableUploadTimeout="true" 
enableLookups="false" keystoreFile="C:/dev/certificates/blabla.pfx" keystorePass="12345" 
keystoreType="PKCS12" maxThreads="25" port="443"   protocol="org.apache.coyote.http11.Http11NioProtocol" 
scheme="https" secure="true"` sslProtocol="TLS"/>

什么是卡塞特?我是否也应该创建一个新的 cacerts 文件并将其添加到本地服务器?我是否需要做一些事情来使其受信任?您能否解释一下将现有证书添加到本地 Tomcat 的正确和必要的顺序。非常感谢。

共有2个答案

姬泰
2023-03-14

您可以一步完成这一切,而无需使用keytool,使用这个基于web的工具生成私钥,创建CSR,导入完整链,将其保存为密钥库文件(现在为P12格式),并显示正确的连接器。

严扬
2023-03-14

这要看情况而定...这要看你的目标(要不要尽量配置成和生产差不多?要不要考虑性能?)以及您拥有的内容(例如,您的JRE支持TLS 1.3吗?)

我假设您只想通过尽可能简单的配置获得SSL / TLS,并且在此阶段您不想太关心安全性(在许多情况下这是可以的)。

你说有一个现存的。pfx认证。我假设它是一个自签名证书。那么这就是你所需要的。你不需要任何进一步的进口,出口,转换。

您使用的配置格式已被否决。我建议你使用和。

您的配置可能如下所示:

    <Connector
            port="443"
            protocol="org.apache.coyote.http11.Http11NioProtocol"
            maxThreads="25"
            SSLEnabled="true">
        <SSLHostConfig>
            <Certificate
                    certificateKeystoreFile=".../your_existing_localhost.pfx"
                    certificateKeystorePassword="12345"
                    type="RSA" />
        </SSLHostConfig>
    </Connector>

这假定 .pfx 包含单个证书。如果同一 .pfx 文件中有多个证书,则应指定 Tomcat 应使用的证书的别名:

    <Connector
            port="443"
            protocol="org.apache.coyote.http11.Http11NioProtocol"
            maxThreads="25"
            SSLEnabled="true">
        <SSLHostConfig>
            <Certificate
                    certificateKeystoreFile=".../your_existing_localhost.pfx"
                    certificateKeyAlias="your_certificate_alias"
                    certificateKeystorePassword="12345"
                    type="RSA" />
        </SSLHostConfig>
    </Connector>

将私钥与证书保存在同一个存储区不是最佳做法。您可以将您的证书放在一个文件中(该文件不受保护且容易访问),将私钥放在另一个文件中(用密码加密和保护)。那么配置将如下所示:

    <Connector
            port="443"
            protocol="org.apache.coyote.http11.Http11NioProtocol"
            maxThreads="25"
            SSLEnabled="true">
        <SSLHostConfig>
            <Certificate
                    certificateFile=".../localhost_certificate.cer"
                    certificateKeyFile=".../localhost_private_key.pkcs8"
                    certificateKeyPassword="56789"
                    type="RSA" />
        </SSLHostConfig>
    </Connector>

被称为“cacerts”的文件包含您信任的证书颁发机构的证书。如果您在Tomcat上部署了某个应用程序,并且该应用程序将通过SSL/TLS访问其他服务器,那么您需要建立对该外部服务器的信任。然后,您需要在您的“cacerts”存储中注册该服务器的证书(或颁发证书的一些“上游”CA的证书)。但在您的情况下,当您只想通过SSL/TLS访问Tomcat时,这是不必要的。

对于您的问题“我是否需要做点什么来使其受信任?要使它被信任给谁?:到您在同一主机上运行的浏览器?对于您在本地网络中的其他主机(计算机、智能手机、其他设备)上运行的浏览器?不能强制客户端信任自签名证书。如果本地网络中的用户通过 HTTPS 访问您的 Tomcat,则每个用户都必须为您的自签名证书显式添加例外。要使您的 Tomcat 自动信任您在同一主机上运行的浏览器,您可以尝试 mkcert。要使您的 Tomcat 自动被从其他主机访问您的 Tomcat 的浏览器信任,您需要将您的 Tomcat 放到公共互联网上,注册一个域名,从某个受信任的 CA 获取此域的证书,并通过公共互联网访问您的 Tomcat。

 类似资料:
  • 第2步。在server.xml中,增加以下内容: 启动时https://localhost:8443错误为加载资源失败:::ERR_FAILED。我错过的任何设置。请帮忙。

  • 主要内容:1 Tomcat生成SSL证书,2 使用SSL证书1 Tomcat生成SSL证书 运行以下命令以生成证书: 在Windows上: 在Linux上: 该工具将询问一些问题以提供证书。证书将位于文件夹中,证书名称为"tomcat"。您可以使用以下方法检查证书: 在Windows上: 在Linux上: 2 使用SSL证书 编辑文件: 在Windows上: 在Linux上: 并添加一个SSL连接器。 重新启动Tomcat,您就完成了。现在,您可以在Tom

  • 本文向大家介绍Dubbo 核心的配置有哪些?相关面试题,主要包含被问及Dubbo 核心的配置有哪些?时的应答技巧和注意事项,需要的朋友参考一下 我曾经面试就遇到过面试官让你写这些配置,我也是蒙逼。。 配置之间的关系见下图。        

  • 本文向大家介绍JVM 配置常用参数有哪些?相关面试题,主要包含被问及JVM 配置常用参数有哪些?时的应答技巧和注意事项,需要的朋友参考一下 垃圾回收参数 -Xnoclassgc 是否对类进行回收 -verbose:class -XX:+TraceClassUnloading 查看类加载和卸载信息 -XX:SurvivorRatio Eden和其中一个survivor的比值 -XX:Pretenur

  • 我正在尝试在eclipse中为java配置带有Tomcat 7的SSL。我已经配置了server.xml: 我正在做一个应用程序客户机/服务器,服务器工作正常,但当我执行客户机时,我出现以下错误: 线程"main"中的异常process_recordClientHandlerException: javjavax.net.ssl.SSLHandshakeException:sun.security

  • 这两个服务工作于:{public-ip}:8080/service-1和{public-ip}:8181/service-2。现在,我想在这个服务器上安装一个SSL证书来保护到两个endpoint的连接,我怎么做?我找到的所有相关答案都使用端口8443上的单个连接器: 但我需要使用多个连接器。