Tomcat10配置端口号为443(使用https访问)

  • Post category:http

下面我将详细讲解如何在Tomcat10中配置端口号为443,并实现使用https访问网站的步骤和详细的示例说明。

1. 生成SSL证书

首先,需要先生成一个SSL证书,可以通过openssl命令行工具生成,这里举一个例子:

openssl req -new -newkey rsa:2048 -nodes -keyout yourdomain.key -out yourdomain.csr

上面的命令会生成一个2048位的RSA密钥对和一个证书签名请求文件yourdomain.csr,借助此文件可以到CA机构签发一张有效期为1年的SSL证书。

2. 下载Tomcat Native库

在安装Tomcat10之前,需要先下载Tomcat Native库,该库支持在Tomcat中使用本地代码以提高SSL性能,可以从以下链接下载对应的版本:Tomcat Native Downloads

下载完成后,解压缩对应的版本,并将其中的*.dll*.so文件复制到Tomcat的bin目录下。

3. 配置Tomcat10的server.xml文件

接下来的步骤是修改Tomcat的配置文件server.xml,找到其中

<!-- Define a SSL HTTP/1.1 Connector on port 8443
     This connector uses the JSSE configuration, when using APR, the
     connector should be using the OpenSSL style configuration
     described in the APR documentation -->
<!--
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
           maxThreads="150" scheme="https" secure="true"
           clientAuth="false" sslProtocol="TLS">
    <SSLHostConfig>
        <Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
                     type="RSA" />
    </SSLHostConfig>
</Connector>
-->

这段代码是一个SSL连接器的配置模板,将其中的端口号8443修改为需要的端口号443,并将SSLEnabled设置为true,同时修改Certificate相关的内容为正确的路径信息和证书名称,修改后的代码如下所示:

<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true" 
           maxThreads="150" scheme="https" secure="true" 
           clientAuth="false" sslProtocol="TLS">
    <SSLHostConfig>
        <Certificate certificateKeyFile="/path/to/your/yourdomain.key"
                     certificateFile="/path/to/your/yourdomain.crt"
                     certificateChainFile="/path/to/your/intermediate.crt"
                     type="RSA" />
    </SSLHostConfig>
</Connector>

其中:
certificateKeyFile是SSL证书的私钥文件路径;
certificateFile是SSL证书文件路径;
certificateChainFile是SSL证书链文件路径,如果证书有中间CA,需要包含中间证书;
type是私钥类型,RSA或DSA。

4. 验证配置是否成功

配置完成后,重启Tomcat10,打开浏览器,输入https://yourdomain:443,验证是否能够正常访问网站。

示例说明

为了方便大家理解上述步骤,这里举两个示例说明。

示例1:通过openssl命令生成SSL证书

在命令行中执行以下命令:

openssl req -new -newkey rsa:2048 -nodes -keyout example.com.key -out example.com.csr

执行完毕后,会生成一个2048位的RSA密钥对和一个证书签名请求文件example.com.csr

示例2:修改server.xml文件

在Tomcat安装目录中找到conf/server.xml文件,找到如下代码:

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
           maxThreads="150" scheme="https" secure="true"
           clientAuth="false" sslProtocol="TLS">
    <SSLHostConfig>
        <Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
                     type="RSA" />
    </SSLHostConfig>
</Connector>

将其中的端口号8443修改为需要的端口号443,并将SSLEnabled设置为true,同时修改Certificate相关的内容为正确的路径信息和证书名称。

<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
           maxThreads="150" scheme="https" secure="true"
           clientAuth="false" sslProtocol="TLS">
    <SSLHostConfig>
        <Certificate certificateKeyFile="/path/to/your/yourdomain.key"
                     certificateFile="/path/to/your/yourdomain.crt"
                     certificateChainFile="/path/to/your/intermediate.crt"
                     type="RSA" />
    </SSLHostConfig>
</Connector>

配置完成后,重启Tomcat10,打开浏览器,输入https://yourdomain:443,验证是否能够正常访问网站。

希望这些步骤和示例能够帮助你完成Tomcat10配置端口号为443并启用https访问。