tomcat8.5配置https

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wudinaniya/article/details/81200309

一、使用jdk自带的工具生成数字证书,如下:

先进入tomcat conf目录下,创建一个文件夹key

然后,

keytool -genkey -v -alias tomcat -keyalg RSA -keystore C:\apache-tomcat-8.5.31\conf\key\tomcat.keystore -validity 36500

 keytool.exe 命令位于Java\jdk1.8.0_77\bin的目录下,如果没有配置Jdk的环境变量,就要进入目录再使用。

在linux服务器上keytool命令同样可用:

[root@docker conf]# keytool -genkey -v -alias tomcat -keyalg RSA -keystore /usr/local/apache-tomcat-8.5.31/conf/key/tomcat.keystore -validity 36500

 

命令参数部分解释:

C:\apache-tomcat-8.5.31\conf\key\tomcat.keystore :表示数字证书生成后的文件路径

36500 :表示有效时间,36500天,默认90天
 

输入密钥库口令:
再次输入新口令:
您的名字与姓氏是什么?
  [Unknown]:  jizhi        # 或者此处写域名eg:  localhost
您的组织单位名称是什么?
  [Unknown]:  spark
您的组织名称是什么?
  [Unknown]:  spark
您所在的城市或区域名称是什么?
  [Unknown]:  beijing
您所在的省/市/自治区名称是什么?
  [Unknown]:
该单位的双字母国家/地区代码是什么?
  [Unknown]:
CN=jizhi, OU=spark, O=spark, L=beijing, ST=Unknown, C=Unknown是否正确?
  [否]:  y

正在为以下对象生成 2,048 位RSA密钥对和自签名证书 (SHA256withRSA) (有效期为 36,50
0 天):
         CN=jizhi, OU=spark, O=spark, L=beijing, ST=Unknown, C=Unknown
输入 <tomcat> 的密钥口令
        (如果和密钥库口令相同, 按回车):
再次输入新口令:
[正在存储C:\apache-tomcat-8.5.31\conf\key\tomcat.keystore]

C:\Users\Administrator>


 

二、tomcat的server.xml配置

1、注释掉8080端口配置  (不是必须,也可以不注释,不注释的话,则http 8080端口也可以访问)

<!--<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />-->

2、取消注释8443端口配置,并改为443端口(访问不加端口的设置(注意:Https访问的端口是8443,可以修改成别的端口。),将生成的正式和密码配置到keystoreFile="C:\apache-tomcat-8.5.31\conf\key\tomcat.keystore" keystorePass="123456"

 <Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true" 
               keystoreFile="C:\apache-tomcat-8.5.31\conf\key\tomcat.keystore" keystorePass="123456"
               >
        <!--<SSLHostConfig>
            <Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
                         type="RSA" />
        </SSLHostConfig>-->
    </Connector>

 

注意:

如果是tomcat8.0,由于tomcat8.0的server.xml和tomcat8.5的不同,tomcat8.0的server.xml文件应该这样改动:

keystoreFile="D:\soft\apache-tomcat-8.0.47-9200\conf\key\tomcat.keystore"

keystorePass="tomcat123",此密码就是生成证书时的密码。

属性 描述
clientAuth                                                               如果设为true,表示Tomcat要求所有的SSL客户出示安全证书,对SSL客户进行身份验证
keystoreFile 指定keystore文件的存放位置,可以指定绝对路径,也可以指定相对于<CATALINA_HOME>(Tomcat安装目录)环境变量 的相对路径。如果此项没有设定,默认情况下,Tomcat将从当前操作系统用户的用户目录下读取名为“.keystore”的文件。
keystorePass 指定keystore的密码,如果此项没有设定,在默认情况下,Tomcat将使用“changeit”作为默认密码。
sslProtocol 指定套接字(Socket)使用的加密/解密协议,默认值为TLS,用户不应该修改这个默认值。
ciphers 指定套接字可用的用于加密的密码清单,多个密码间以逗号(,)分隔。如果此项没有设定,在默认情况下,套接字可以使用任意一个可用的密码。

3、更改8443端口为443

改为:

<Connector port="8009" protocol="AJP/1.3" redirectPort="443" />

 

三、访问,输入https://localhost/ 或 https://192.168.0.116

 



公司UAT环境(windows server2012)tomcat8.5我是这样配 https 的:
 

<Connector port="443" protocol="HTTP/1.1" 
           sslProtocol="TLS" clientAuth="false" 
           keystorePass="wozuiweida" 
           keystoreFile="C:\Users\Administrator\Desktop\apache-tomcat-8.5.31\conf\scan.playgame-cloud.com.jks" 
           scheme="https" SSLEnabled="true" maxThreads="150">

<!-- <SSLHostConfig> <Certificate certificateKeystoreFile="conf/playgame-cloud.com.jks" type="RSA" /> </SSLHostConfig> -->

</Connector>

生产环境(linux CentOS7)tomcat8.5 我是这样配https的:

 

	<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
		maxThreads="150" scheme="https" secure="true"
		keystoreFile="conf/SHA256withRSA__.gxzs.co.jks"   
		keystorePass="18126721788"                
		clientAuth="false" sslProtocol="TLS" />

    <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />


 

展开阅读全文

没有更多推荐了,返回首页