深入了解Tomcat,了解如何创建自签名RSA密钥,ECDSA密钥,以及如何通过多次保留验证Tomcat。
在上一篇博客文章中,我们研究了Tomcat 8.5+如何使用SNI将证书映射到请求的主机名。
Tomcat 8.5+可以更进一步,并为每个主机支持多种证书类型。 这对于在较旧的浏览器中支持RSA以及在兼容的浏览器中支持ECDSA最为有用。
通过优锐课的java学习分享,在此博客文章中,我们将研究如何使用多种证书类型配置Tomcat。
创建自签名RSA密钥
要生成RSA私钥和自签名证书,请使用以下命令:
openssl req -x509 -newkey rsa:4096 -keyout rsa.key -out rsa.crt -days 365
创建自签名的ECDSA密钥
要创建ECDSA私钥,请使用以下命令:
openssl ecparam -genkey -out ecdsa.key -name prime256v1
名称参数是命令返回的列表中的一个:
openssl ecparam -list_curves
OpenSSL支持大量曲线,但是浏览器通常仅支持非常少量的曲线。 SSL实验室允许你测试浏览器对命名曲线的支持。 在下面的屏幕截图中,你可以看到Firefox 57支持的曲线:x25519,secp256r1,secp384r1,secp521r1。
secp256r1是OpenSSLprime256v1曲线。
然后使用以下命令从私钥创建证书:
openssl req -x509 -new -key ecdsa.key -out ecdsa.crt
使用多个键配置Tomcat
为了支持两种证书类型,可以将多个
这是Tomcat server.xml配置文件的片段,其中包含使用上述OpenSSL命令创建的两个自签名证书和私钥。
此代码段使用APR协议,该协议接受OpenSSL创建的PEM文件。 有关在Tomcat中启用APR的更多信息,请参见构建Apache可移植运行时。
验证配置
High-Tech Bridge提供了一项在线服务,用于验证Web服务器的安全性配置。
在此屏幕截图中,我们可以看到Tomcat服务器同时公开了RSA和ECDSA证书。
结论
Tomcat在为单个HTTPS端口同时支持RSA和ECDSA证书的能力方面非常独特。 这使Tomcat可以在不牺牲安全性的情况下向各种客户端提供HTTPS。 只需定义两个具有不同类型属性的
> 喜欢这篇文章的可以点个赞,欢迎大家留言评论,记得关注我,每天持续更新技术干货、职场趣事、海量面试资料等等
> 如果你对java技术很感兴趣也可以交流学习,共同学习进步。
> 不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代
文章写道这里,欢迎完善交流。最后奉上近期整理出来的一套完整的java架构思维导图,分享给大家对照知识点参考学习。有更多JVM、Mysql、Tomcat、Spring Boot、Spring Cloud、Zookeeper、Kafka、RabbitMQ、RockerMQ、Redis、ELK、Git等Java干货