我试图在httpd中使用SSLCACertificatePath指令指向客户端证书验证的根和中间体的集合.
我能够毫无困难地使用完整的,连接的PEM编码文件(使用SSLCACertificateFile指令),但我更愿意能够指向目录而不是构建一个大型文件.
我已按照httpd手册中的说明进行操作(并在此处进行了说明),包括对所有文件进行哈希处理,如下所示:
awk命令拆分所有单独的证书(大约40个左右)对于每个pem文件,运行:
openssl x509 -noout -hash -in NAME-OF-CA-FILE
Run Code Online (Sandbox Code Playgroud)
得到哈希
当我将httpd指向该目录时,当我尝试进行客户端证书验证时,我最终得到以下错误:
AH02039: Certificate Verification: Error (20): unable to get local issuer certificate
AH02039: Certificate Verification: Error (19): self signed certificate in certificate chain
Run Code Online (Sandbox Code Playgroud)
所以它就像是找不到中间体和根.
同样,这在使用组合PEM时都有效.
有什么建议?
我试图从数据库中选择两个字段之间的时差小于或大于某个值的实体。在标准SQL中,只需使用TIMESTAMPDIFF函数即可完成此操作:
SELECT * from run where TIMESTAMPDIFF(SECOND, run.end_time, run.start_time) > 60;
Run Code Online (Sandbox Code Playgroud)
但是,JPA 2.0中似乎没有任何等效的东西。
我已经尝试了所有我能想到的一切,包括这里的建议:将TIMESTAMPDIFF与JPA条件查询一起使用,并休眠为提供者
predicate.getExpressions().add(criteriaBuilder.greaterThanOrEqualTo(criteriaBuilder.function("TIMESTAMPDIFF", Long.class, criteriaBuilder.literal("SECOND"), root.get(Run_.endTime), root.get(Run_.startTime)), minSeconds))
Run Code Online (Sandbox Code Playgroud)
根本不起作用,因为我专门尝试计算长时间(60/90天)。TIMEDIFF解决方案无济于事,因为可以返回的最大TIMEDIFF为35天。还有其他方法可以做到这一点吗?