阿里云https证书tomcat配置方法
阅读本文前,请先参看前文https://www.jb51.net/article/142204.htm
当我们使用Java生成的证书使用https访问时会出现未认证的问题,证书风险
现在我们就申请一个阿里云云盾的免费证书
一、登录阿里云-->安全(云盾)-->证书服务->购买证书
在配置单中选择 "免费型DV SSL" 证书提供商品牌为:“赛门铁克” 注意:免费数字证书,最多保护一个明细子域名,不支持通配符,一个阿云帐户最多签发20张免费证书最后支付。
然后再点击查看
此时还未完成,需要点击补全信息,并填写相应信息。真实填写就可以了。包括:域名、姓名、邮箱等等。因为我的域名是托管到阿里云解析服务的,所以我的认证方式DNS解析认证,并勾选了发送cname。填写完成后才是“待审核”状态,等待就可以了。
10分钟左右就会收到阿里云的邮件。邮件的内容:发送给你的 主机记录和记录值。
阿里云自动的去添加了一条cname记录
大概过半个多小时后证书状态会变成已签发
这个时候就可以点进去下载证书了。选择tomcat,支持2种方式:
Tomcat支持JKS格式证书,从Tomcat7开始也支持PFX格式证书,两种证书格式任选其一,我使用的第一种方式。
文件说明:
1. 证书文件214068026470389.pem,包含两段内容,请不要删除任何一段内容。
2. 如果是证书系统创建的CSR,还包含:证书私钥文件214068026470389.key、PFX格式证书文件214068026470389.pfx、PFX格式证书密码文件pfx-password.txt。
1、证书格式转换
在Tomcat的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中。如果申请证书时是自己创建的CSR文件,附件中只包含214068026470389.pem文件,还需要将私钥文件拷贝到cert目录,命名为214068026470389.key;如果是系统创建的CSR,请直接到第2步。
到cert目录下执行如下命令完成PFX格式转换命令,此处要设置PFX证书密码,请牢记:
2、PFX证书安装
找到安装Tomcat目录下该文件server.xml,一般默认路径都是在 conf 文件夹中。找到 <Connection port="8443" 标签,增加如下属性:
keystoreFile="cert/214068026470389.pfx" keystoreType="PKCS12" #此处的证书密码,请参考附件中的密码文件或在第1步中设置的密码 keystorePass="证书密码"
完整的配置如下,其中port属性根据实际情况修改:
<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" keystoreFile="cert/214068026470389.pfx" keystoreType="PKCS12" keystorePass="您的证书密码" clientAuth="false" sslProtocol="TLS" />
重启tomcat,用https访问成功
关于异常: Connector attribute SSLCertificateFile must be defined when using SSL with APR
Tomcat提供了两个SSL实现,一个是JSSE实现,另一个是APR实现。Tomcat将自动选择使用哪个实现,即如果安装了APR则自动选择APR,否则选择JSSE。如果不希望让Tomcat自动选择,而是我们自己指定一个实现则可通过protocol定义,如下:APR文件名为tcnative-1.dll。6.x里没这个dll文件,而7.x里有。6.x没有,6.x默认使用JSSE实现,而7.0默认使用APR实现。弄明白缘由就好办了。由于习惯使用6.0的配置方式(即JSEE实现),因此只要把conf\server.xml里的protocol的值修改一下就行了:
protocol="org.apache.coyote.http11.Http11Protocol"
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
- 如何通过预加载器提升网页加载速度
- 分钟学会正则表达式(译)
- TensorFlow从0到1 | 第十一章 74行Python实现手写体数字识别
- 让浏览器不再显示 https 页面中的 http 请求警报
- 跨域访问和防盗链基本原理
- 【翻译】MongoDB指南/CRUD操作(一)
- 【直播】我的基因组50:从测序深度和位点间距来看SNV分布情况
- 【翻译】MongoDB指南/CRUD操作(二)
- 【翻译】MongoDB指南/CRUD操作(三)
- 为什么 Laravel 会成为最成功的 PHP 框架?
- 【生信菜鸟经】如何系统入门Perl
- 【翻译】MongoDB指南/CRUD操作(四)
- R包终极解决方案
- Table被web编程弃用的原因
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 搞懂JavaScript全局变量与局部变量,看这篇文章就够了
- Day3-linux用户管理
- rbind的坑?
- 全文检索工具Lucene入门教程
- 数据库技术:数据库连接池,Commons DbUtils,批处理,元数据
- elasticsearch-快速入门
- 数据库技术:JDBC,预处理对象,事务控制
- elasticsearch-DSL高级查询语法
- 数据库技术:XML
- 利用logstash将mysql多表数据增量同步到es
- 纯CSS实现自定义单选框和复选框
- 基于Linux安装Mysql5.7
- 纯CSS实现iOS风格打开关闭选择框
- 算法基础:递归
- ELK日志收集原理+es集群+elk搭建+本地目录文件读取,搭建分布式日志收集系统