热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

LinuxOpenSSL证书签发

*OPENSSL1.安装OPENSSL并确认openssl.cnf文件位置$yuminstallopenssl$rpm-qa|grepopenssl$rpm-qlopenssl-*2.相关目录设定,用于存储证书,临时性文件与私钥$mkdiretcssl$mkdiretcsslprivate$

======================
* OPENSSL
======================
1. 安装OPENSSL并确认openssl.cnf文件位置

  1. $ yum install openssl 
  2. $ rpm -qa | grep openssl 
  3. $ rpm -ql openssl-* 

2. 相关目录设定,用于存储证书, 临时性文件与私钥

  1. mkdir /etc/ssl 
  2. $ mkdir /etc/ssl/private 
  3. chmod 700 /etc/ssl/private 
  4. $ mkdir /etc/ssl/crl 
  5. $ mkdir /etc/ssl/newcrt 

3. SSL初始化配置,将默认配置文件转移到新的位置,进行修改,并导出OPENSSL所需环境变量

  1. cp /usr/share/ssl/openssl.cnf /etc/ssl 
  2. ln -s /etc/ssl/openssl.cnf /usr/share/ssl/openssl.cnf 
  3. $ echo 'export OPENSSL_COnF="/etc/ssl/openssl.cnf"' >> ~/.bashrc 
  4. $ vi /etc/ssl/openssl.cnf
    ; 修改"dir = /etc/ssl"

4. 生成随机数

  1. $ openssl rand -out /etc/ssl/private/.rand 1024 
  2. $ chmod 700 /etc/ssl/private/.rand 

5. 生成RSA,CA私钥,CA私钥用于提供签发CA根证书,CA根证书需要提供给他人下载,使其可以使用此证书对其它证书,如WEB证书进行认证

  1. $ openssl genrsa -des3 -out /etc/ssl/private/CA.key 2048 
  2. $ chmod 700 /etc/ssl/private/CA.key 2048 

6. 填写CA证书申请文件(CSR)

  1. $ openssl req -new -key /etc/ssl/private/CA.key -out /tmp/CA.rc 

之后会弹出一些信息,按照提示进行输入即可,完成后会生成一个证书请求文件,这一步骤就相当于你在专业认证机构网页上输入你的相关信息,然后服务器会提供你一个(CSR)文件,之后你可以使用该文件签发证书,该文件只是一个中间文件,包含了你生成证书的相关内容

7. 签发CA,由于是根证书,所以没有上级证书,自己给自己签发

  1. $ openssl x509 \ 
  2.   -req -days 7310 \ 
  3.   -sha1 -extfile /etc/ssl/openssl.conf \ 
  4.   -extensions v3_ca \ 
  5.   -signkey /etc/ssl/private/CA.key \ 
  6.   -in /tmp/CA.rc \ 
  7.   -out /etc/ssl/certs/CA.crt 

解释

; 过期时间20年
; 配置文件/etc/ssl/openssl.conf
; 格式为v3_ca证书
; 签名密钥/etc/ssl/private/CA.key
; 证书申请文件/tmp/CA.rc
; CA证书/etc/ssl/certs/CA.crt

8. 签发WEB证书
; 签发WEB证书私钥

  1. $ openssl genrsa -out /etc/ssl/private/www.key 2048 
  2. $ chmod 700 /etc/ssl/private/www.key 

; 填写证书申请文件(CSR)
; 注意"COMMON NAME"为FQDN
; 附加挑战密码不要输入,否则每次启动服务器都要输入此密码
 

  1. $ openssl req \ 
  2.   -new -key /etc/ssl/private/www.key \ 
  3.   -out /tmp/www.rc 

; 签发WEB证书

  1. $ openssl x509 \ 
  2.   -req -days 3650 -sha1 \ 
  3.   -extfile /etc/ssl/openssl.cnf \ 
  4.   -extensions v3_req \ 
  5.   -CA /etc/ssl/certs/CA.crt \ 
  6.   -CAkey /etc/ssl/private/CA.key \ 
  7.   -CAserial /etc/ssl/ca.srl -CAcreateserial \ 
  8.   -in /tmp/www.rc \ 
  9.   -out /etc/ssl/certs/www.crt 

解释

; 动作: 请求证书,过期时间10年,摘要算法为SHA1
; 配置文件/etc/ssl/openssl.cnf
; 使用CA根证书/etc/ssl/certs/CA.crt进行签名
; CA私钥文件为: CA.key
; 创建并使用CA序列号文件ca.srl
; 证书请求文件为www.rc证书输出为www.crt

---------------
* 小技巧
---------------
; BASE-64编码文件以及还原被BASE64编码的文件,一般情况下,在对SMTP服务器进行调测时可能会用到这些内容

  1. $ openssl base64 < filename.bin > filename_base64.txt 
  2. $ openssl base64 -d < filename_base64.txt > filename.bin 
  3. $ echo -n "Hello" | openssl base64 

; 计算文件SHA1散列,一般可以用来验证下载的文件是否是正确的文件

  1. $ openssl sha1 filename.bin 
  声明: 该文是本人在参考了部分前辈文章后自行编写,如有雷同绝对巧合,另外,由于本人对证书了解的东西也不多,所以错误之错在所难免,如有高人路过请不吝指教(注:附件为本文内容,如有需要各位可以下载)

点击这里下载
推荐阅读
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 如何基于ggplot2构建相关系数矩阵热图以及一个友情故事
    本文介绍了如何在rstudio中安装ggplot2,并使用ggplot2构建相关系数矩阵热图。同时,通过一个友情故事,讲述了真爱难觅的故事背后的数据量化和皮尔逊相关系数的概念。故事中的小伙伴们在本科时参加各种考试,其中有些沉迷网络游戏,有些热爱体育,通过他们的故事,展示了不同兴趣和特长对学习和成绩的影响。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文详细介绍了解决全栈跨域问题的方法及步骤,包括添加权限、设置Access-Control-Allow-Origin、白名单等。通过这些操作,可以实现在不同服务器上的数据访问,并解决后台报错问题。同时,还提供了解决second页面访问数据的方法。 ... [详细]
author-avatar
痞子彪2012_890
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有