资讯专栏INFORMATION COLUMN

阿里云申请的SSL证书如何应用在JAVA项目中

Enlightenment / 3472人阅读

摘要:通过工具包中的工具,生成格式的证书文件。文件这样的证书文件可以是二进制格式,也可以是文本格式,一般均为文本格式,功能与及证书文件相同。在您实际部署数字证书时,请使用通过此转换步骤分离出来的私钥和您申请得到的公钥证书匹配进行部署。

先看这篇文章,对数字证书的格式有个了解
https://help.aliyun.com/knowl...

主流数字证书都有哪些格式?
一般来说,主流的 Web 服务软件,通常都基于 OpenSSL 和 Java 两种基础密码库。

Tomcat、Weblogic、JBoss 等 Web 服务软件,一般使用 Java 提供的密码库。通过 Java Development Kit (JDK)工具包中的 Keytool 工具,生成 Java Keystore(JKS)格式的证书文件。

Apache、Nginx 等 Web 服务软件,一般使用 OpenSSL 工具提供的密码库,生成 PEM、KEY、CRT 等格式的证书文件。

IBM 的 Web 服务产品,如 Websphere、IBM Http Server(IHS)等,一般使用 IBM 产品自带的 iKeyman 工具,生成 KDB 格式的证书文件。

微软 Windows Server 中的 Internet Information Services(IIS)服务,使用 Windows 自带的证书库生成 PFX 格式的证书文件。

如何判断证书文件是文本格式还是二进制格式?

您可以使用以下方法简单区分带有后缀扩展名的证书文件:

.DER 或 .CER 文件: 这样的证书文件是二进制格式,只含有证书信息,不包含私钥。
.CRT 文件: 这样的证书文件可以是二进制格式,也可以是文本格式,一般均为文本格式,功能与 .DER 及 *.CER 证书文件相同。
.PEM 文件: 这样的证书文件一般是文本格式,可以存放证书或私钥,或者两者都包含。 .PEM 文件如果只包含私钥,一般用 *.KEY 文件代替。
.PFX 或 .P12 文件: 这样的证书文件是二进制格式,同时包含证书和私钥,且一般有密码保护。
您也可以使用记事本直接打开证书文件。如果显示的是规则的数字字母,例如:

—–BEGIN CERTIFICATE—–
MIIE5zCCA8+gAwIBAgIQN+whYc2BgzAogau0dc3PtzANBgkqh......
—–END CERTIFICATE—–
那么,该证书文件是文本格式的。

如果存在——BEGIN CERTIFICATE——,则说明这是一个证书文件。
如果存在—–BEGIN RSA PRIVATE KEY—–,则说明这是一个私钥文件。
证书格式转换

因此从阿里下载下来的证书文件:xxx.key xxx.pem xxx.pfx .key为私钥文本类型,.pem为证书文本类型,xxx.pfx 证书和私钥

以下证书格式之间是可以互相转换的。

证书格式转换关系

您可使用以下方式实现证书格式之间的转换:

注意: 云盾证书服务统一使用 PEM 格式的数字证书文件。

1. 将 JKS 格式证书转换成 PFX 格式

您可以使用 JDK 中自带的 Keytool 工具,将 JKS 格式证书文件转换成 PFX 格式。

例如,您可以执行以下命令将 server.jks 证书文件转换成 server.pfx 证书文件:

keytool -importkeystore -srckeystore D:server.jks -destkeystore D:server.pfx -srcstoretype JKS -deststoretype PKCS12

2. 将 PFX 格式证书转换为 JKS 格式

您可以使用 JDK 中自带的 Keytool 工具,将 PFX 格式证书文件转换成 JKS 格式。

例如,您可以执行以下命令将 server.pfx 证书文件转换成 server.jks 证书文件:

keytool -importkeystore -srckeystore D:server.pfx -destkeystore D:server.jks -srcstoretype PKCS12 -deststoretype JKS

3. 将 PEM/KEY/CRT 格式证书转换为 PFX 格式

您可以使用 OpenSSL工具,将 KEY 格式密钥文件和 CRT 格式公钥文件转换成 PFX 格式证书文件。

例如,将您的 KEY 格式密钥文件(server.key)和 CRT 格式公钥文件(server.crt)拷贝至 OpenSSL 工具安装目录,使用 OpenSSL 工具执行以下命令将证书转换成 server.pfx证书文件:

openssl pkcs12 -export -out server.pfx -inkey server.key -in server.crt

将PFX转换为PEM/KEY/CRT

您可以使用 OpenSSL工具,将 PFX 格式证书文件转化为 KEY 格式密钥文件和 CRT 格式公钥文件。

例如,将您的 PFX 格式证书文件拷贝至 OpenSSL 安装目录,使用 OpenSSL 工具执行以下命令将证书转换成 server.pem 证书文件、KEY 格式密钥文件(server.key)和 CRT 格式公钥文件(server.crt):

openssl pkcs12 -in server.pfx -nodes -out server.pem
openssl rsa -in server.pem -out server.key
openssl x509 -in server.pem -out server.crt
注意: 此转换步骤是专用于通过 Keytool 工具生成私钥和 CSR 申请证书文件的,并且通过此方法您可以在获取到 PEM 格式证书公钥的情况下分离私钥。在您实际部署数字证书时,请使用通过此转换步骤分离出来的私钥和您申请得到的公钥证书匹配进行部署。

----------------------------以上是链接中的内存--------------------------------------------
----------------------------下面是操作---------------------------------------------------
1.去阿里云服务器官网去申请证书,下载证书格式选择tomcat相关的,因为包含.pfx格式的文件,所以可以直接通过keytool工具转换

2.keytool -importkeystore -srckeystore D:server.pfx -destkeystore D:server.jks -srcstoretype PKCS12 -deststoretype JKS
文件路径自己替代即可,执行该指令需要输入

目标秘钥库的密码:即要生成的.JKS的密码
源秘钥库的密码:即下载的证书文件中pfx-password.txt中的密码

导入成功会提示,生成的.jks秘钥库种,别名对应的密码即为pfx-password.txt中的密码

3.可以通过keytool -list -v -keystore xxx.jks -storepass xxx 来查看秘钥库相关的信息

4.在java代码中应用
http://blog.csdn.net/fw0124/a...
对于单项认证:

server侧只需要自己的keystore文件,不需要truststore文件
client侧不需要自己的keystore文件,只需要truststore文件(其中包含server的公钥)。
此外server侧需要在创建SSLServerSocket之后设定不需要客户端证书:setNeedClientAuth(false)

如果不验证证书,可以重写TrustManager

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/70573.html

相关文章

  • 一文教您如何通过 Docker 搭建反向代理 Ngnix,并配置 Https SSL 证书

    摘要:由于上面我们已经新建了一个配置文件,这里就直接将反向代理的配置写在里面通过配置,我们反向代理到了端口的服务。六最后本文中,我们学习了如何通过快速搭建环境,并对其配置证书和反向代理,让网站能够以协议来访问。 欢迎关注个人微信公众号: 小哈学Java, 每日推送 Java 领域干货文章,关注即免费无套路附送 100G 海量学习、面试资源哟!!个人网站: https://www.except...

    ZHAO_ 评论0 收藏0
  • 配置Nginx+Springboot+Qiniu+Https一点心得

    摘要:通过购买免费的证书购买地址详细操作请点击免费申请阿里云赛门企业级铁克证书在上面配置我们现在这里只讲解在阿里云下购买的证书进行配置,现在都有了证书,现在我们来配置。 最近项目中的网站要设置https,虽然进入软件行业6年了,配置这个还是显得信心不足,还好网上有好多网友分享的文章可以从中学习,但是有优也有劣,凭我自己的一点经验从中甄选出好一点的文章跟大家分享一下。 1、什么是Https? ...

    阿罗 评论0 收藏0
  • 阿里centos7线上项目绑定域名,且使用https方式访问

    摘要:并把它部署到线上,同时,使用了格式。我使用阿里云的服务器。接下来,就是域名解析和绑定,并结合。配置阿里云证书申请阿里云服务控制台安全云盾证书单击购买证书,前去购买证书,填入补全资料,按照默认提示勾选,并绑定域名,即可申请成功。 导读 如今,毕业将近一年了。一直使用公司的老框架,该框架采用前后端不分离的模式。但是,最近公司想要采用前后端分离的模式,并让我重新架构新框架。对于,毕业不久的我...

    jindong 评论0 收藏0
  • 阿里centos7线上项目绑定域名,且使用https方式访问

    摘要:并把它部署到线上,同时,使用了格式。我使用阿里云的服务器。接下来,就是域名解析和绑定,并结合。配置阿里云证书申请阿里云服务控制台安全云盾证书单击购买证书,前去购买证书,填入补全资料,按照默认提示勾选,并绑定域名,即可申请成功。 导读 如今,毕业将近一年了。一直使用公司的老框架,该框架采用前后端不分离的模式。但是,最近公司想要采用前后端分离的模式,并让我重新架构新框架。对于,毕业不久的我...

    DevTTL 评论0 收藏0
  • 阿里centos7线上项目绑定域名,且使用https方式访问

    摘要:并把它部署到线上,同时,使用了格式。我使用阿里云的服务器。接下来,就是域名解析和绑定,并结合。配置阿里云证书申请阿里云服务控制台安全云盾证书单击购买证书,前去购买证书,填入补全资料,按照默认提示勾选,并绑定域名,即可申请成功。 导读 如今,毕业将近一年了。一直使用公司的老框架,该框架采用前后端不分离的模式。但是,最近公司想要采用前后端分离的模式,并让我重新架构新框架。对于,毕业不久的我...

    马永翠 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<