通过简单的方法在Apache Tomcat上配置SSL证书


如果您希望将网站配置为始终使用Tomcat通过https:// your_website /应用程序访问打开,则本文与配置有关。

基本要求

  1. JAVA SDK / JDK
  2. Tomcat (7+)

设置包括三个基本步骤

  1. 使用Java创建密钥库 文件
  2. 配置Tomcat 以使用密钥库
  3. 测试 你做了什么!
  4. (奖励)配置您的应用程序以使用SSL (通过https://localhost:8443/your_Application)

第1步-使用Java创建密钥库文件 首先,打开计算机上的终端,然后键入:

Windows:

cd %JAVA_HOME%/bin

Linux或Mac OS:

cd $JAVA_HOME/bin

Mac上的$ JAVA_HOME位于

“/System/Library/Frameworks/JavaVM.framework/Versions/{your java version}/Home/”

您将当前目录更改为计算机上已安装Java的目录。在Java Home目录中,cd到bin文件夹。在bin文件夹中,有一个名为key tool的文件。这件事负责为我们生成密钥库文件。

接下来,在终端上输入:

keytool -genkey -alias tomcat -keyalg RSA

当您键入上面的命令时,它将询问您一些问题。首先,它将要求您创建一个密码(我的密码是“ password ”):

c:/RaxTonProduction/: keytool -genkey -alias tomcat -keyalg RSA
Enter keystore password:  password (<------------- Please note, it will be invisible)
Re-enter new password: password
What is your first and last name?
  [Unknown]:  Rakshit Shah
What is the name of your organizational unit?
  [Unknown]:  RaxTon
What is the name of your organization?
  [Unknown]:  RaxTon
What is the name of your City or Locality?
  [Unknown]:  Ahmedabad
What is the name of your State or Province?
  [Unknown]:  GJ
What is the two-letter country code for this unit?
  [Unknown]:  IN
Is CN=Rakshit Shah, OU=RaxTon, O=RaxTon, L=Ahmedabad, ST=GJ, C=IN correct?
  [no]:  yes

Enter key password for
    (RETURN if same as keystore password):  password
Re-enter new password: password

它将在用户主目录中创建一个.keystore 文件。在Windows上,它将位于:C:Documents and Settings [username]; 在Mac上,它将位于/ Users / [用户名];在Linux上,它将位于/ home / [用户名]。

步骤2 —配置Tomcat以使用密钥库文件SSL配置 打开您的Tomcat安装目录,然后打开conf 文件夹。在此文件夹中,您将找到server.xml文件。打开它。

查找以下声明:

<!--
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
    maxThreads="150" scheme="https" secure="true"
    clientAuth="false" sslProtocol="TLS" />
-->

取消注释并对其进行修改,使其类似于以下内容:

Connector SSLEnabled="true" acceptCount="100" clientAuth="false"
    disableUploadTimeout="true" enableLookups="false" maxThreads="25"
    port="8443" keystoreFile="/Users/loiane/.keystore" keystorePass="password"
    protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="https"
    secure="true" sslProtocol="TLS" />

请注意,我们添加了keystoreFile,keystorePass 并更改了协议 声明。

步骤3 —让我们对其进行测试! 启动tomcat服务并尝试访问https:// localhost:8443。您将看到Tomcat的本地主页。

请注意,如果您尝试访问默认的8080端口,它也将起作用:http:// localhost:8080

步骤4 —奖金—配置您的应用程序以使用SSL(通过https:// localhost:8443 / yourApp访问) 要强制您的Web应用程序使用SSL,您只需要将以下代码添加到web.xml文件中(在web-app标签结束之前):

<security-constraint>
    <web-resource-collection>
        <web-resource-name>securedapp</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>

该URL模式设置为/ *所以从您的应用程序的任何页面/资源是安全的(也可以只访问HTTPS)。该传输保证标签设置为保密 ,以确保您的应用将运行SSL。

如果要关闭SSL,则无需从web.xml删除上面的代码,只需将CONFIDENTIAL更改为NONE即可。

答对了!你做到了!


原文链接:http://codingdict.com