java - 将 SSL_CLIENT_CERT 设置为文件
问题描述
对于一些自动化测试,我在 apache 反向代理上配置虚拟主机。我希望虚拟主机自动将 x509 客户端证书添加到请求中以在远程服务器上进行身份验证
我试过设置:
RequestHeader set SSL_CLIENT_CERT file('/path/to/vert.p12')
但是好像远程服务器上的tomcat实例无法读取p12文件
在某些情况下,我正在使用内置的 tomcat 实例运行 Spring Boot 应用程序。p12 文件受密码保护。
我在遥控器上的过滤器链抛出
0 WARN org.apache.catalina.valves.SSLValve - Failed to process certificate string [-----BEGIN CERTIFICATE-----
ycert.p12')] to create a java.security.cert.X509Certificate object
java.security.cert.CertificateException: Could not parse certificate: java.io.IOException: Incomplete data
at sun.security.provider.X509Factory.engineGenerateCertificate(X509Factory.java:110)
at java.security.cert.CertificateFactory.generateCertificate(CertificateFactory.java:339)
at org.apache.catalina.valves.SSLValve.invoke(SSLValve.java:159)
at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:747)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.IOException: Incomplete data
at sun.security.provider.X509Factory.readOneBlock(X509Factory.java:612)
at sun.security.provider.X509Factory.engineGenerateCertificate(X509Factory.java:96)
解决方案
推荐阅读
- javascript - Javascript Reg Exp 匹配一个带有“电话号码”的句子,但前面没有“我的”这个词
- javascript - toLocaleLowerCase() 的使用
- java - 在JPA双向@OnetoMany关系中,当我更新父实体时,子实体在数据库中被删除
- typo3 - TYPO3 Fluid:强制图像格式为 jpg
- android - 如何使用 setRequiredNetworkType(NetworkType.CONNECTED) 约束测试 Android WorkManager?
- r - 由于“rms”包的加载失败,加载“lordif”包问题
- c - 如何在命令行确定netbeans设置的环境变量
- python - 运行 df.to_csv() 时出现 Dask 内存错误
- watson-conversation - 与 watson 助手连接 altervista
- amazon-web-services - CodePipeline 找不到我的 Yaml 模板