在Tomcat上配置SSL并设置自动重定向HTTP到HTTPS的步骤
安全套接字层(SSL)是加密协议,用于在互联网上提供消息安全性。它基于私钥和公钥的概念,消息在发送到网络之前会进行加密。要在Tomcat上配置SSL,我们需要使用Java keytool创建数字证书,用于开发环境。对于生产环境,您应该从SSL证书提供商获取数字证书,例如Verisign,Entrust,Let’s Encrypt。
生成SSL证书
按照以下步骤来创建您自己的数字证书。
$ keytool -genkey -alias tomcat -keyalg RSA -keystore mycertificate.cert
Enter keystore password:
Re-enter new password:
What is your first and last name?
[Unknown]: Pankaj Kumar
What is the name of your organizational unit?
[Unknown]: Dev
What is the name of your organization?
[Unknown]: JournalDev
What is the name of your City or Locality?
[Unknown]: Bangalore
What is the name of your State or Province?
[Unknown]: Karnataka
What is the two-letter country code for this unit?
[Unknown]: IN
Is CN=Pankaj Kumar, OU=Dev, O=JournalDev, L=Bangalore, ST=Karnataka, C=IN correct?
[no]: Yes
Enter key password for <tomcat>
(RETURN if same as keystore password):
Re-enter new password:
$ ls
mycertificate.cert
我已经在Keystore和密钥中使用了密码“changeit”,但您可以自行选择。现在我们的数字证书已准备好,下一步是在Tomcat中启用HTTPS通信端口,并设置它使用我们的数字证书来提供SSL支持。
翻译:Tomcat的HTTPS安全协议
要启用SSL,请打开~ Tomcat_Installation / conf / server.xml文件,并取消注释以下行:
<Connector port="8443" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
keystoreFile="/Users/Pankaj/tomcat/conf/mycertificate.cert"
clientAuth="false" sslProtocol="TLS" />

将Tomcat的HTTP重定向到HTTPS。
所以我们可以在HTTP和HTTPS端口上访问任何网络应用程序。我们可以通过一些配置来设置Tomcat将所有HTTP请求重定向到HTTPS端口。
-
- 在~TomcatInstallation/conf/server.xml中,对于HTTP Connector,将重定向端口设置为HTTPS Connector的端口。它会类似于以下内容:
在~TomcatInstallation/conf/web.xml中,添加以下配置,但请确保将其添加在所有servlet-mapping标记之后。
Entire Application
/*
CONFIDENTIAL
现在重启Tomcat,所有的HTTP请求将自动重定向到HTTPS,即https://localhost:8080/axis2将自动重定向到https://localhost:8443/axis2。注意:如果你不想在URL中提供端口号,可以使用80作为HTTP的端口号,443作为HTTPS的端口号。在这种情况下,你可以跳过将HTTP请求自动重定向到HTTPS的第一步,因为它将自动选择默认的443端口。更新:如果你正在使用Tomcat,你可能会对以下帖子感兴趣。
- Java Web Application Tutorial
- Java Servlet Tutorial