在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 SSL Enabled

将Tomcat的HTTP重定向到HTTPS。

所以我们可以在HTTP和HTTPS端口上访问任何网络应用程序。我们可以通过一些配置来设置Tomcat将所有HTTP请求重定向到HTTPS端口。

    1. 在~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
广告
将在 10 秒后关闭
bannerAds