gpt4 book ai didi

tomcat - 如何在 Ubuntu 14 上使用 SSL 配置 tomcat 7 - Unresolved 问题

转载 作者:行者123 更新时间:2023-11-28 22:08:04 25 4
gpt4 key购买 nike

有数百个关于在 tomcat 上安装 SSL 的指南,但我找不到能回答这些关键问题的指南。

安装SSL有两种方式:一种是给我们keytool,另一种是直接把cert文件放在FS上,然后把server.xml指向这些文件(不使用keytool)。

以下是问题,如果有人知道答案,我将不胜感激:

  1. 与仅将证书放在 FS 上相比,使用更复杂的 key 工具是否有任何优势,例如在/etc/ssl 中
  2. 如果使用 key 工具,您必须提供“-keystore xxx.jks”。 xxx.jks 应位于何处,例如/root,/home/tomcat7,/etc/var/lib/tomcat7?我只能找到一个说明如何设置 keystore 的指南,它说要把它放在 tomcat 目录中,这看起来很疯狂,因为当我们升级 tomcat 时,我们会丢失证书,但如果这是一个硬性要求,那么我们可以做到.
  3. 如果使用 keytool,哪个用户应该使用该工具导入证书,tomcat7 还是 root?
  4. 他们可用的示例展示了如何将证书导入用于生成原始 csr 的 keystore 。我们没有使用它来生成 csr(我们从第 3 方获得了证书)。这是否意味着我们不能使用 keystore ,或者需要先生成一个虚拟的 csr?

我们不知道哪个 CA 用于颁发证书,因此无法在那里寻找答案。我们有 3 个文件:gd_bundle-g2-g1.crt、our.crt 和 our.key

我们使用 java 7。

----- 更新 1 ------

收到我们不能对现有 key /crt 文件使用 keytool 的建议(我们认为是由 go daddy 发布的)后,我们尝试了将 key /证书直接放入 server.xml 的旧方法,这在过去确实有效使用旧版本的 tomcat:

我们得到这个错误:

 java.io.FileNotFoundException: /usr/share/tomcat7/.keystore (No such file or directory)

----更新 2 -----

我们找到了this post它展示了如何将现有证书与 tomcat 一起使用:

openssl pkcs12 -export -in mycert.crt -inkey mykey.key -out our.p12 -name tomcat -CAfile myCA.crt -caname root -chain

然后编辑 server.xml:

<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="200" scheme="https" secure="true"
keystoreType="PKCS12"
keystoreFile="/etc/ssl/our.p12" keystorePass=""
clientAuth="false" sslProtocol="TLS" />

但是,这会在 catalina.out 中带来此消息:

 SEVERE: Failed to initialize end point associated with ProtocolHandler ["http-bio-443"]
java.net.SocketException: No such file or directory

----- 更新 3 -----

所以我们不知道为什么 433 失败(端口 80 工作,443 上没有其他任何东西,我们以 root 身份启动它),但是如果我们将它更改为 8443,tomcat 启动时没有错误(万岁!) ,但是当我们导航到 www.oursite.com/ourwebapp:8443 时,我们得到 404。如果我们尝试 https://www.oursite.com/ourwebapp:8443我们从 chrome 收到“此网页不可用”。

netstat -a

显示它正在监听端口 8443(和 80,但在 443 上什么也没有)

有什么想法吗?

最佳答案

针对catalina.out中报出的这部分问题...

SEVERE: Failed to initialize end point associated with ProtocolHandler ["http-bio-443"] java.net.SocketException: No such file or directory

对我来说,这是由于 tomcat 不允许绑定(bind)到端口 443 造成的,与 keystore /证书无关。

我通过运行...修复了它

sudo touch /etc/authbind/byport/443 
sudo chmod 500 /etc/authbind/byport/443
sudo chown tomcat7 /etc/authbind/byport/443

如果你没有安装authbind,通过以下方式安装

apt-get install authbind

关于tomcat - 如何在 Ubuntu 14 上使用 SSL 配置 tomcat 7 - Unresolved 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30119664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com