TOMCAT9配置Https访问

1.

在conf/server.xml中配置

<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true">
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="D:\tomcat\apache-tomcat-9.0.37\conf\test.keystore"
                         type="RSA" certificateKeystorePassword="a123456" />
        </SSLHostConfig>
  </Connector>

certificateKeystoreFile:证书路径

certificateKeystorePassword:证书密码

2.配置http转https,在tomcat中的conf/web.xml 最后面

      <login-config>  
        <!-- Authorization setting for SSL -->  
            <auth-method>CLIENT-CERT</auth-method>  
            <realm-name>Client Cert Users-only Area</realm-name>  
        </login-config>  
        <security-constraint>  
            <!-- Authorization setting for SSL -->  
            <web-resource-collection >  
                <web-resource-name >SSL</web-resource-name>  
                <url-pattern>/*</url-pattern>  
            </web-resource-collection>  
            <user-data-constraint>  
                <transport-guarantee>CONFIDENTIAL</transport-guarantee>  
            </user-data-constraint>  
        </security-constraint>

<think> 我们参考了引用[1]和[2]中关于Tomcat9配置HTTPS的方法,但需要整合并详细说明步骤。 注意:引用[1]使用的是Java的keytool生成密钥库,然后配置Connector;引用[2]则是使用已有的证书(PFX格式)进行配置。 我们将以生成自签名证书为例(使用keytool),同时也会说明如何使用已有证书(如PFX格式)。 步骤1:生成密钥库(如果使用自签名证书) 1.1 打开命令提示符(CMD)或终端。 1.2 使用以下命令生成密钥库(keystore): keytool -genkey -alias tomcat -keyalg RSA -keystore F:\tomcat.keystore -validity 3650 说明: -alias tomcat:指定别名,这里用tomcat,可以自定义。 -keyalg RSA:指定密钥算法为RSA。 -keystore F:\tomcat.keystore:指定密钥库存放路径和文件名(这里放在F盘根目录,也可以选择其他目录)。 -validity 3650:证书有效期(单位:天),这里是10年。 1.3 按照提示输入密钥库密码(这个密码要记住,后面配置要用),然后输入相关信息(如姓名、组织单位、组织、城市、省市、国家代码等)。最后会要求输入<tomcat>的主密码(直接回车则使用与密钥库相同的密码)。 步骤2:配置Tomcat的server.xml 2.1 打开Tomcat安装目录下的conf/server.xml文件。 2.2 找到类似以下内容的Connector配置(默认可能是注释掉的): <!-- <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" /> --> 2.3 根据引用[1]和[2]的两种方式,有两种配置方法(选择其中一种): 方法1(使用生成的keystore,如JKS格式): 取消注释并修改为如下(注意根据实际情况修改keystoreFile和keystorePass): <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="200" scheme="https" secure="true" SSLEnabled="true" keystoreFile="F:\tomcat.keystore" keystorePass="tomcat" <!-- 这里改为你的密钥库密码 --> clientAuth="false" sslProtocol="TLS" /> 方法2(使用已有的PFX格式证书,如从证书颁发机构获得): 引用[2]中使用了新的配置方式(Tomcat 8.5及9支持): <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true"> <SSLHostConfig> <Certificate certificateKeystoreFile="/home/fan/apache-tomcat-9.0.64/cert/key.pfx" certificateKeystoreType="PKCS12" certificateKeystorePassword="6pbiW868" /> </SSLHostConfig> </Connector> 注意: certificateKeystoreFile:证书文件的路径(可以是绝对路径或相对路径)。 certificateKeystoreType:证书类型,PFX格式的证书通常为PKCS12。 certificateKeystorePassword:生成PFX证书时设置的密码(或从证书提供商处获得)。 步骤3:重启Tomcat 3.1 保存server.xml文件。 3.2 重启Tomcat服务。 步骤4:测试 在浏览器中访问https://localhost:8443 (注意端口号是8443,如果配置了其他端口则相应修改) 注意: - 如果使用自签名证书,浏览器会显示不安全,这是正常的,因为自签名证书不被浏览器信任。如果是生产环境,应使用受信任的证书颁发机构(CA)签发的证书。 - 端口号8443是HTTPS的默认端口,也可以改为其他端口(如443,但需要管理员权限)。 引用说明: 上述步骤参考了引用[1]和[2]中的配置方法[^1][^2]。 §§相关问题§§ 1. 如何为Tomcat 9配置HTTP/2? 2. 如何将TomcatHTTPS默认端口8443改为443? 3. 如何从证书颁发机构(CA)获取SSL证书并配置Tomcat? </think> ### Tomcat 9 配置 HTTPS 的详细步骤 #### 方法1:使用 keytool 生成自签名证书 1. **生成密钥库** 打开命令行执行(Windows示例): ```bash keytool -genkey -alias tomcat -keyalg RSA -keystore F:\tomcat.keystore -validity 3650 ``` - 按提示设置密钥库密码(如 `tomcat`)并填写证书信息 - 生成的文件:`F:\tomcat.keystore` 2. **修改 server.xml 配置** 打开 `TOMCAT_HOME/conf/server.xml`,在 `<Service>` 标签内添加: ```xml <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="200" scheme="https" secure="true" SSLEnabled="true" keystoreFile="F:\tomcat.keystore" keystorePass="tomcat" <!-- 此处填密钥库密码 --> clientAuth="false" sslProtocol="TLS"/> ``` [^1] 3. **重启并测试** - 重启 Tomcat 服务 - 访问 `https://localhost:8443` --- #### 方法2:使用 PFX 格式证书(适用于 CA 颁发的证书) 1. **准备证书文件** 将证书文件(如 `key.pfx`)放到安全目录,例如: `/home/user/tomcat/cert/key.pfx` 2. **修改 server.xml 配置** 在 `server.xml` 中添加: ```xml <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true"> <SSLHostConfig> <Certificate certificateKeystoreFile="/home/user/tomcat/cert/key.pfx" certificateKeystoreType="PKCS12" <!-- PFX证书类型 --> certificateKeystorePassword="your_password" /> <!-- 证书密码 --> </SSLHostConfig> </Connector> ``` [^2] 3. **重启并验证** - 重启 Tomcat - 通过浏览器检查 HTTPS 连接安全性 --- #### 常见问题解决 - **端口冲突**:确保 `port="8443"` 未被其他程序占用 - **权限问题**: Linux 系统需授权证书文件访问权限: ```bash chmod 600 /path/to/cert.pfx ``` - **证书密码错误**:确认 `keystorePass` 或 `certificateKeystorePassword` 与生成时一致 - **协议支持**:使用 `TLSv1.2+` 可添加参数: ```xml sslEnabledProtocols="TLSv1.2,TLSv1.3" ``` > 通过以上步骤,Tomcat 9 即可启用 HTTPS 加密连接。若需配置 HTTP 自动跳转 HTTPS,可在 `web.xml` 中添加安全约束[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值