Tomcat配置SSL证书

 

 

 


一、免费证书


找到一个免费提供 HTTPS 证书申请、HTTPS 证书管理和 HTTPS 证书到期提醒服务的网站,分享给大家

申请免费证书

 

 

二、申请证书

 

2.1 填写域名,点击创建免费的SSL证书

 

2.2 填写邮箱,点击创建

 

1)证书类型默认为 RSA

RSA 和 ECC 有什么区别呢?可以通过下面几段文字了解一下。

HTTPS 通过 TLS 层和证书机制提供了内容加密、身份认证和数据完整性三大功能,可以有效防止数据被监听或篡改,还能抵御 MITM(中间人)攻击。TLS 在实施加密过程中,需要用到非对称密钥交换和对称内容加密两大算法。

对称内容加密强度非常高,加解密速度也很快,只是无法安全地生成和保管密钥。在 TLS 协议中,应用数据都是经过对称加密后传输的,传输中所使用的对称密钥,则是在握手阶段通过非对称密钥交换而来。常见的 AES-GCM、ChaCha20-Poly1305,都是对称加密算法。

非对称密钥交换能在不安全的数据通道中,产生只有通信双方才知道的对称加密密钥。目前最常用的密钥交换算法有 RSA 和 ECDHE:RSA 历史悠久,支持度好,但不支持 PFS(Perfect Forward Secrecy);而 ECDHE 是使用了 ECC(椭圆曲线)的 DH(Diffie-Hellman)算法,计算速度快,支持 PFS。

2)验证类型默认为 DNS

DNS 和文件验证有什么区别呢?我们再来一起了解下。

首先,我们需要明白一点,CA(Certificate Authority,证书颁发机构) 需要验证我们是否拥有该域名,这样才给我们颁发证书。

文件验证(HTTP):CA 将通过访问特定 URL 地址来验证我们是否拥有域名的所有权。因此,我们需要下载给定的验证文件,并上传到您的服务器。

DNS 验证:CA 将通过查询 DNS 的 TXT 记录来确定我们对该域名的所有权。我们只需要在域名管理平台将生成的 TXT 记录名与记录值添加到该域名下,等待大约 1 分钟即可验证成功。

所以,如果对服务器操作方便的话,可以选择文件验证;如果对域名的服务器操作比较方便的话,可以选择 DNS 验证。如果两个都方便的话,请随意选啦。

3)CSR生成默认为离线生成

离线生成、浏览器生成 和 我有 CSR 又有什么区别呢?来,我们继续了解一下。

离线生成 推荐!!!:私钥在本地加密存储,更安全;公钥自动合成,支持常见证书格式转换,方便部署;支持部分 WebServer 的一键部署,非常便捷。

离线生成的时候,需要先安装 KeyManager,可以提供安全便捷的 SSL 证书申请和管理。下载地址如下:
https://keymanager.org/

Windows 的话,安装的时候要选择“以管理员身份运行”。

浏览器生成:在浏览器支持 Web Cryptography 的情况下,会使用浏览器根据用户的信息生成 CSR 文件。

Web Cryptography,网络密码学,用于在 Web 应用程序中执行基本加密操作的 JavaScript API。很多浏览器并不支持

我有 CSR:可以粘贴自己的 CSR,然后创建。

第三步,选择离线生成,打开 KeyManager

填写密码后点击「开始」,稍等片刻。

2.2.1点击创建之后弹出窗口,“打开KeyManager”

 

2.2.2创建CSR成功

 

2.2.3点击“继续”

 

2.2.4根据提供的信息开始验证

根据信息配置完成后,先检测一下。如果成功在点击验证

配置方式

2.2.5点击验证

点击验证之后,根据提示再等20s再点击验证

第二次点击验证,保存到keyManage

 

 

 

 

验证成功后,证书的状态会改为“已颁发”

 

 

三、Tomcat配置 jks 格式证书

3.1导出证书,jks格式

注意:私钥的密码在配置 Tomcat 的时候用到。

 

 

 

3.2上传证书到服务器

使用Xftp软件上传文件至tomcat/conf文件夹中

 

3.3配置 Tomcat 的 server.xml

(1)把

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

改成

 <Connector port="80" protocol="HTTP/1.1"  connectionTimeout="20000" redirectPort="443"            />

其中第一个80端口是为HTTP(HyperText Transport Protocol)即超文本传输协议开放的,此为上网冲浪使用次数最多的协议,第二个443端口是SSL的专用端口;

 

(2)把

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

改成

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

使用443端口的理由同上;

 

(3)把

    <!--
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol"
               maxThreads="150" SSLEnabled="true" >
        <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
        <SSLHostConfig>
            <Certificate certificateKeyFile="conf/localhost-rsa-key.pem"
                         certificateFile="conf/localhost-rsa-cert.pem"
                         certificateChainFile="conf/localhost-rsa-chain.pem"
                         type="RSA" />
        </SSLHostConfig>
    </Connector>
    -->

改成

	<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true">
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="conf/www.***.com.jks"
						 certificateKeystorePassword="password"
                         type="RSA" />
        </SSLHostConfig>
    </Connector>

如果一个tomcat配置多个https,则做如下修改

	<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true" defaultSSLHostConfigName="gd.***.com">
			   
        <SSLHostConfig hostName="gd.***.com" >
            <Certificate certificateKeystoreFile="conf/gd.***.com.jks"
						 certificateKeystorePassword="hujiang"
                         type="RSA" />
        </SSLHostConfig>
		<SSLHostConfig hostName="xgd.***.com" >
            <Certificate certificateKeystoreFile="conf/xgd.***.com.jks"
						 certificateKeystorePassword="hujiang"
                         type="RSA" />
        </SSLHostConfig>
    </Connector>

 

首先去掉注释,然后certificateKeystoreFile属性是让你告诉服务器需要哪个SSL证书,后面就填复制过去的那个jks文件的名字(记得带上jks后缀),然后加上certificateKeystorePassword这个属性,后面的属性值填秘钥(导出证书时填的私密加密密码)

 

四、重启Tomcat

如果显示找不到页面,那么就应该是你的云服务器的443端口被防火墙拦截了,此时就需要打开443端口。

在服务器安全组添加端口+Centos开放端口

启动成功后https://www.javaj.work域名可以访问自己的项目了

 

 

 

 


 

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云下的你

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值