在Tomcat上配置SSL以及从HTTP到HTTPS的设置自动重定向的步骤
时间:2020-02-23 14:33:13 来源:igfitidea点击:
安全套接字层(SSL)是用于通过Internet提供消息安全性的加密协议。
它适用于私钥和公钥的概念,并且消息在通过网络发送之前已加密。
要在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]: hyman Kumar What is the name of your organizational unit? [Unknown]: Dev What is the name of your organization? [Unknown]: theitroad 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=hyman Kumar, OU=Dev, O=theitroad, 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
我已经为密钥库和密钥使用了密码" 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/hyman/tomcat/conf/mycertificate.cert" clientAuth="false" sslProtocol="TLS"
为了避免证书放错地方,我将其放在了tomcat conf目录中。
现在,重新启动Tomcat,并尝试通过https使用端口8443访问任何Web应用程序。
Tomcat重定向HTTP到HTTPS
因此,我们可以在HTTP和HTTPS端口上访问任何Web应用程序。
我们可以设置tomcat以通过一些配置将所有HTTP请求重定向到HTTPS端口。
- 在~TomcatInstallation/conf/server.xml中,对于HTTP连接器,将重定向端口设置为HTTPS连接器端口。
看起来会像这样:
立即重新启动tomcat,所有HTTP请求将自动重定向到HTTPS,即https://localhost:8080/axis2将自动重定向到https://localhost:8443/axis2
注意:如果您不想在网址中提供端口,请对HTTP使用80,对HTTPS使用443。
在这种情况下,您可以跳过第一步以将HTTP请求自动重定向到HTTPS,因为它将自动选择默认端口443。