【问题标题】:Configuring SSL on Jetty在 Jetty 上配置 SSL
【发布时间】:2020-09-28 11:49:49
【问题描述】:

我正在尝试将我的码头环境配置为能够建立安全连接。

我已经运行了官方码头文档中描述的步骤:https://www.eclipse.org/jetty/documentation/9.4.31.v20200723/jetty-ssl-distribution.html。但没有成功..

重建步骤:

  1. java -jar start.jar --create-startd --add-to-start=ssl
  2. java -jar start.jar --add-to-start=ssl,conscrypt
  3. java -jar start.jar --add-to-startd=ssl,https
  4. 使用以下值更新 start.d/ssl.ini:
--module=ssl
jetty.ssl.host=0.0.0.0
jetty.ssl.port=8583
jetty.sslContext.keyStorePath=etc/keystore
jetty.sslContext.trustStorePath=etc/keystore
jetty.sslContext.keyStorePassword=OBF:
jetty.sslContext.keyManagerPassword=OBF:
jetty.sslContext.trustStorePassword=OBF:
 #Enable client certificate authentication.
jetty.sslContext.needClientAuth=true

为了生成密钥库,我按照以下步骤操作:

openssl genrsa -des3 -out jetty.key
openssl req -new -x509 -key jetty.key -out jetty.crt
keytool -keystore keystore -import -alias jetty -file jetty.crt -trustcacerts
openssl req -new -key jetty.key -out jetty.csr
openssl pkcs12 -inkey jetty.key -in jetty.crt -export -out jetty.pkcs12
keytool -importkeystore -srckeystore jetty.pkcs12 -srcstoretype PKCS12 -destkeystore keystore

作为最后一步,我对密码进行了混淆并将其更新到 start.d/ssl.ini 文件中。

问题

我遇到了类似的错误

2020-09-28 13:51:46.896:INFO::main: Logging initialized @523ms to org.eclipse.jetty.util.log.StdErrLog
2020-09-28 13:51:47.387:WARN:oejs.HomeBaseWarning:main: This instance of Jetty is not running from a separate {jetty.base} directory, this is not recommended.  See documentation at http://www.eclipse.org/jetty/documentation/current/startup.html
2020-09-28 13:51:47.414:INFO:oejs.Server:main: jetty-9.4.31.v20200723; built: 2020-07-23T17:57:36.812Z; git: 450ba27947e13e66baa8cd1ce7e85a4461cacc1d; jvm 11.0.8+10-LTS
2020-09-28 13:51:47.460:INFO:oejdp.ScanningAppProvider:main: Deployment monitor [file:///opt/jetty-distribution-9.4.31.v20200723/webapps/] at interval 1
2020-09-28 13:51:47.796:INFO:oejus.SslContextFactory:main: x509=X509@6853425f(jetty,h=[jettyhttp2sample.organicdesign.org],w=[]) for Server@5a9f4771[provider=Conscrypt,keyStore=file:///opt/jetty-distribution-9.4.31.v20200723/etc/keystore,trustStore=file:///opt/jetty-distribution-9.4.31.v20200723/etc/keystore]
2020-09-28 13:51:47.799:INFO:oejus.SslContextFactory:main: Unable to get KeyManagerFactory instance for algorithm [SunX509] on provider [Conscrypt], using default
2020-09-28 13:51:47.882:INFO:oejs.AbstractConnector:main: Started ServerConnector@46c1a1fc{SSL, (ssl, http/1.1)}{localhost:8443}
2020-09-28 13:51:47.886:INFO:oejs.AbstractConnector:main: Started ServerConnector@7b205dbd{HTTP/1.1, (http/1.1)}{0.0.0.0:8080}
2020-09-28 13:51:47.887:INFO:oejs.Server:main: Started @1514ms

无法在提供者 [Conscrypt] 上获取算法 [SunX509] 的 KeyManagerFactory 实例,使用默认值

感谢任何帮助

谢谢。

【问题讨论】:

  • 我正在使用这个版本的 Jetty:jetty-distribution-9.4.31.v20200723 并在 ubuntu.20.04 发行版中运行

标签: java ssl jetty keystore jetty-9


【解决方案1】:

这里没有报告错误,这是备用提供者的正常后备操作(在您的情况下是 conscrypt)。

Conscrypt 安全提供程序不支持KeyManagerFactorySunX509 算法,因此它回退到JVM 默认实现。

另外,不要直接编辑您的 jetty-home / jetty-distribution 中的文件,这是一个更大的警告,请正确使用该发行版,并根据链接中的文档将您的 jetty-home 与您的 jetty-base 分开该警告消息。这种用于管理 Jetty 独立配置的古老技术已在 Jetty 10 和 Jetty 11 中完全删除!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-14
    • 2013-06-15
    • 1970-01-01
    相关资源
    最近更新 更多