记一次CA证书的申请、服务器上的部署过程

2024-05-29 16:32

本文主要是介绍记一次CA证书的申请、服务器上的部署过程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.简介

最近用dockerliberity服务器上部署了一个应用。由于安全方面的考虑,服务器管理员需要我们启用https连接。这就需要我们去给liberity配置ssl证书。

2.步骤

1.申请CA证书

  1. 申请CA证书需要证书请求文件,需要在Server端生成。可以在server端用openssl命令生成。
    证书请求文件里面包含的是serverpublic key。下面的命令生成了一个xxxx.com.key,这个就是服务器的私钥。xxxx.com.csr就是证书请求文件,里面包含的是与xxxx.com.key配对的公钥。
    openssl req -new -sha256 -newkey rsa:2048 -nodes -keyout xxxx.com.key -out xxxx.com.csr
    
    思考:为什么需要证书请求文件?
    CA机构会用自己的私钥给证书请求文件签一个名,这样我们就得到了CA签名的证书,里面包含了server的公钥。
    浏览器在打开我们的网站的时候,server会将这个经过CA签名的证书发给浏览器,浏览器或操作系统内置了包含CA机构的公钥,用公钥将证书解密,得到server的公钥,用于后面https协商对称加密的秘钥。
  2. csr文件提交到CA机构。提交一些必要的信息之后,CA机构会返回给你CA证书。
    我这里使用的是内网的CA,它最终提供了三种文件格式的证书(crt,der, pkcs7b)。

2.将CA证书和服务器私钥存入p12秘钥库中

由于liberity服务器需要p12秘钥库形式的证书,所以我们需要对证书进行转换。
证书转换的时候,遇到了很多坑。
crtder格式的证书在转换的时候都会出错,出现unable to load certificate的错误。怀疑和CA网站上下载的证书的格式有关系,后面还需要研究下,这些格式之间有什么区别联系。
最终通过先将pkcs7b格式证书转换成pem格式的证书,然后将pem格式的证书转换成p12格式的证书,达到了目的。
pkcs7b格式的证书下载下来,文件后缀名是pem的,但是格式其实不是pem。需要先转成pem
pkcs7格式的cert.pem转成pem格式的certificate.pem

openssl pkcs7 -print_certs -in cert.pem -out certificate.pem

再将pem格式的certificate.pem转成p12格式的certificate.p12,注意需要将服务器的私钥xxxx.com.key一起放在p12中(设置了export密码,这个密码要和server.xml中的password对应):

openssl pkcs12 -export -in certificate.pem -inkey xxxx.com.key -out certificate.p12

3. 配置liberity服务器

liberity服务器的ssl配置和tomcat服务器的配置是很类似的。
参考:https://www.ibm.com/docs/zh/was-liberty/nd?topic=liberty-ssl-configuration-attributes
https://www.openliberty.io/docs/21.0.0.5/reference/feature/transportSecurity-1.0.html

修改server.xml,加入下面的ssl配置:
p12 文件需要放在/output/resources/security/文件夹下,这里是liberity默认的存储key的位置。

    <!-- SSL --><sslDefault sslRef="izuSSLConfig" /><ssl id="izuSSLConfig" keyStoreRef="defaultKeyStore"clientAuthenticationSupported="false" sslProtocol="TLSv1.2"/><keyStore id="defaultKeyStore" location="/output/resources/security/certificate.p12" type="PKCS12" readOnly="true" password="xxxxxx" />

4. certificate过期了,进行替换

证书过期了,需要替换。需要在IBM内网,重新生成证书,然后替换。刚开始的想法是想要重新制作镜像,最后发现可以直接使用docker cp命令替换正在运行的容器里面的证书,然后重启容器即可。

docker cp certificate.p12  镜像名:/output/resources/security/  
docker restart 镜像名

这篇关于记一次CA证书的申请、服务器上的部署过程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1014045

相关文章

Spring boot整合dubbo+zookeeper的详细过程

《Springboot整合dubbo+zookeeper的详细过程》本文讲解SpringBoot整合Dubbo与Zookeeper实现API、Provider、Consumer模式,包含依赖配置、... 目录Spring boot整合dubbo+zookeeper1.创建父工程2.父工程引入依赖3.创建ap

Linux下进程的CPU配置与线程绑定过程

《Linux下进程的CPU配置与线程绑定过程》本文介绍Linux系统中基于进程和线程的CPU配置方法,通过taskset命令和pthread库调整亲和力,将进程/线程绑定到特定CPU核心以优化资源分配... 目录1 基于进程的CPU配置1.1 对CPU亲和力的配置1.2 绑定进程到指定CPU核上运行2 基于

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

如何在Ubuntu 24.04上部署Zabbix 7.0对服务器进行监控

《如何在Ubuntu24.04上部署Zabbix7.0对服务器进行监控》在Ubuntu24.04上部署Zabbix7.0监控阿里云ECS服务器,需配置MariaDB数据库、开放10050/1005... 目录软硬件信息部署步骤步骤 1:安装并配置mariadb步骤 2:安装Zabbix 7.0 Server

Java进程异常故障定位及排查过程

《Java进程异常故障定位及排查过程》:本文主要介绍Java进程异常故障定位及排查过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、故障发现与初步判断1. 监控系统告警2. 日志初步分析二、核心排查工具与步骤1. 进程状态检查2. CPU 飙升问题3. 内存

SpringBoot整合liteflow的详细过程

《SpringBoot整合liteflow的详细过程》:本文主要介绍SpringBoot整合liteflow的详细过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋...  liteflow 是什么? 能做什么?总之一句话:能帮你规范写代码逻辑 ,编排并解耦业务逻辑,代码

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示

mysql中的服务器架构详解

《mysql中的服务器架构详解》:本文主要介绍mysql中的服务器架构,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、mysql服务器架构解释3、总结1、背景简单理解一下mysqphpl的服务器架构。2、mysjsql服务器架构解释mysql的架

MySQL中的InnoDB单表访问过程

《MySQL中的InnoDB单表访问过程》:本文主要介绍MySQL中的InnoDB单表访问过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、环境3、访问类型【1】const【2】ref【3】ref_or_null【4】range【5】index【6】

浏览器插件cursor实现自动注册、续杯的详细过程

《浏览器插件cursor实现自动注册、续杯的详细过程》Cursor简易注册助手脚本通过自动化邮箱填写和验证码获取流程,大大简化了Cursor的注册过程,它不仅提高了注册效率,还通过友好的用户界面和详细... 目录前言功能概述使用方法安装脚本使用流程邮箱输入页面验证码页面实战演示技术实现核心功能实现1. 随机