https - 想用Tomcat配置HTTPS;没有注册域名
问题描述
我正在尝试让 HTTPS 与 Tomcat 一起使用。我在 CentOS 7.7.1098 上使用 Tomcat 8.5.55。我没有注册域来发送 CSR 到......而只是想在我的本地主机上运行它。
我已经阅读了有关该主题的多个来源,他们说要创建自己的 CA。我是这样做的:
openssl genrsa -des3 -out myCA.key 2048
openssl req -x509 -new -nodes -key myCA.key -sha256 -days 1825 -out myCA.pem
然后将其加载到服务器上:
cp myCA.pem /etc/pki/ca-trust/source/anchors/
update-ca-trust
然后将其导入密钥库:
keytool -genkey -alias tomcat -keyalg RSA
keytool -importcert -alias tomcat -keystore ~/.keystore -file ~/tempcert/myCA.pem
下面是 server.xml 的样子:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="~/.keystore"
type="RSA" />
</SSLHostConfig>
</Connector>
但是当我尝试连接到https://localhost:8443时,它只是超时(例如,在 Firefox 中,“连接已超时。本地主机上的服务器响应时间过长。)
日志目录中也没有任何错误。
我哪里出错了?
解决方案
server.xml 文件应包含密钥库密码。请您更改 server.xml 如下:-
<Connector SSLEnabled="true" acceptCount="100" clientAuth="false"
disableUploadTimeout="true" enableLookups="false" maxThreads="25"
port="8443" keystoreFile="yourKeystorefilePath" keystorePass="yourKeystorepassword"
protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="https"
secure="true" sslProtocol="TLS" />
您的密钥库文件应使用相同的密码导入密钥库。
仍然有任何问题,请从 tomcat 位置向我发送以下 unix 命令和 catalina.out 日志文件的输出以进行更多调试。
- ps -ef | grep '8443'
- curl -iv --cert=file https://localhost:8443
再检查一次,请通过此链接( https://keystore-explorer.org/ )在您的机器中安装此密钥库资源管理器工具并在其中导入密钥库文件,一旦导入,它将要求输入密码(输入正确的密码)。如果它将打开意味着密钥库文件和密码正确。
希望它能解决您的问题。
推荐阅读
- firebase - 如何正确地将流合并为一个流?
- python - 如何获得 BioBERT 嵌入
- rust - 将所有权与向量解耦
- libgdx - 使用 jython 2.7.2 枚举的 libgdx 问题
- rust - 为什么在 rand 上调用 thread_rng() 而不是 Rng,就像在 io 上调用 stdin() 一样?
- python - 如何从 WSDL 文件构建一个肥皂服务器?
- javascript - 使用正则表达式通过 Express 路由网页对我来说安全吗?
- javascript - 如何对 webassembly 进行同步调用
- reactjs - BlueprintJS:修改 Tooltip 组件的宽度
- python - 在 python 中使用氦气截屏