Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ssl 如何将Windows证书存储与Jetty一起使用?_Ssl_Ssl Certificate_Jetty_Jetty 9_Certificate Store - Fatal编程技术网

Ssl 如何将Windows证书存储与Jetty一起使用?

Ssl 如何将Windows证书存储与Jetty一起使用?,ssl,ssl-certificate,jetty,jetty-9,certificate-store,Ssl,Ssl Certificate,Jetty,Jetty 9,Certificate Store,我正在尝试使用Jetty的Windows证书存储进行HTTPS通信。 在客户端网站上设置web应用程序后,客户端在Windows证书存储中更新过期证书应该比创建或更新密钥库文件更容易。 这就是我所做的: 从下载最新版本9.4.26 在start.ini中添加了以下行: 运行方式: "jre\bin\java" -jar start.jar --module=https,deploy 这就是我得到的错误: java.lang.reflect.InvocationTargetException

我正在尝试使用Jetty的Windows证书存储进行HTTPS通信。

在客户端网站上设置web应用程序后,客户端在Windows证书存储中更新过期证书应该比创建或更新密钥库文件更容易。

这就是我所做的:

从下载最新版本9.4.26

在start.ini中添加了以下行:

运行方式:

"jre\bin\java" -jar start.jar --module=https,deploy
这就是我得到的错误:

java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.eclipse.jetty.start.Main.invokeMain(Main.java:218)
        at org.eclipse.jetty.start.Main.start(Main.java:491)
        at org.eclipse.jetty.start.Main.main(Main.java:77)
Caused by: java.lang.IllegalStateException: no valid keystore
        at org.eclipse.jetty.util.security.CertificateUtils.getKeyStore(CertificateUtils.java:50)
        at org.eclipse.jetty.util.ssl.SslContextFactory.loadKeyStore(SslContextFactory.java:1188)
        at org.eclipse.jetty.util.ssl.SslContextFactory.load(SslContextFactory.java:323)
        at org.eclipse.jetty.util.ssl.SslContextFactory.doStart(SslContextFactory.java:245)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
        at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
        at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:117)
        at org.eclipse.jetty.server.SslConnectionFactory.doStart(SslConnectionFactory.java:92)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
        at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
        at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:117)
        at org.eclipse.jetty.server.AbstractConnector.doStart(AbstractConnector.java:320)
        at org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:81)
        at org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:231)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
        at org.eclipse.jetty.server.Server.doStart(Server.java:385)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
        at org.eclipse.jetty.xml.XmlConfiguration.lambda$main$0(XmlConfiguration.java:1888)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1837)
        ... 7 more
我还尝试添加或更改行,结果相同:

jetty.sslContext.keyStoreType=Windows-MY
jetty.sslContext.trustStoreType=Windows-ROOT
-

-


如果您看到Jetty的源代码,他们希望将一些文件系统资源作为密钥库和信任库路径传递。当密钥库或信任库修补程序不存在时,将出现以下异常:

Caused by: java.lang.IllegalStateException: no valid keystore
    at rg.eclipse.jetty.util.security.CertificateUtils.getKeyStore(CertificateUtils.java:50)
不过,加载Windows应用商店有一个技巧。您可以指定:

jetty.sslContext.keyStoreType=Windows-MY (or Windows-ROOT)
对于
jetty.sslContext.keystrepath
,您可以指定文件系统中存在的任何虚拟文件路径(甚至可以创建一个空的txt文件并给出其路径!)。在这种情况下,将加载Windows应用商店,jetty端资源验证也将通过

仅供参考,当您将密钥库类型提供为Windows MY或Windows ROOT时,它将在加载密钥库时忽略任何文件输入流(如果已传递)。最终只加载一个密钥库,即Windows应用商店

jetty.sslContext.keyStoreType=Windows-MY
jetty.sslContext.trustStoreType=Windows-ROOT
jetty.sslContext.keyStorePath=NONE
jetty.sslContext.trustStorePath=NONE
Caused by: java.lang.IllegalStateException: no valid keystore
    at rg.eclipse.jetty.util.security.CertificateUtils.getKeyStore(CertificateUtils.java:50)
jetty.sslContext.keyStoreType=Windows-MY (or Windows-ROOT)