0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在linux系统通过OpenSSL工具自签https证书

马哥Linux运维 来源:马哥Linux运维 2024-12-09 13:53 次阅读

工具介绍

  • OpenSSL是SSL/TLS协议的实现工具

  • key是私钥文件,用于对发送给客户端的数据加密,以及对从客户端接收的数据进行解密。

  • csr是证书签名请求文件,用于提交给证书颁发机构(CA)对证书签名。

  • crt是由证书颁发机构(CA)签名后的证书,或者是开发者自签名的证书,包含证书持有人的信息,持有人的公钥,以及签署者的签名等信息

操作步骤

1、生成证书

生成私钥

openssl genrsa -des3 -out myCA.key 2048
##openssl genrsa 用于生成RSA私钥,不会生成公钥,因为公钥提取自私钥 
## -des3为加密方式 
## 2048为生成秘钥长度 
## 可以加上-nodes参数,禁止进行加密,即可不运行下面的消除密码

消除私钥key的密码
openssl rsa -in myCA.key -out myCA.key
生成pem文件
openssl req -utf8 -x509 -new -nodes -key myCA.key -sha256 -days 825 -out myCA.pem

2、创建CA签名证书

生成私钥
openssl genrsa -out server.key 2048

创建证书签名请求

openssl req -new -key server.key -out server.csr
##Common Name应该与域名保持一致,否则会引起浏览器警告

为扩展创建一个配置文件

>server.ext cat <<-EOF 
authorityKeyIdentifier=keyid,issuer 
basicConstraints=CA:FALSE 
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment 
subjectAltName = @alt_names 
[alt_names] 
DNS.1 = www.baidu.com # Be sure to include the domain name here because Common Name is not so commonly honoured by itself 
DNS.2 = www.sougou.com # Optionally, add additional domains (I've added a subdomain here) 
IP.1 = 192.168.1.1  # Optionally, add an IP address (if the connection which you have planned requires it) EOF 
## chrome 会查看当前域名是否在证书中声明,该声明由 subjectAltName 字段设置。上述的生成步骤默认未设置该字段。

创建签名证书
openssl x509 -req -in server.csr -CA myCA.pem -CAkey myCA.key -CAcreateserial -out server.crt -days 3650 -sha256 -extfile server.ext

得到所需证书文件
server.crt
server.key


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11279

    浏览量

    209264
  • OpenSSL
    +关注

    关注

    0

    文章

    21

    浏览量

    8675

原文标题:在linux系统通过OpenSSL工具自签https证书

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    嵌入式学习-ElfBoard ELF 1板卡-移植openssl

    ELF1开发板上移植openssl。 开发环境操作系统:Ubuntu18.04交叉编译链:arm-poky-linux-gnueabi-gcc内核版本:Linux4.1.15openssl
    发表于 12-28 08:53

    openssl移植到arm-linux全过程相关资料分享

    :arm-linux-gnueabihf-4.7下载openssl源代码官网下载源代码,我使用的最新版本1.1.1c,官网链接如下:https://www.
    发表于 07-01 12:22

    openssl库移植过程记录

    openssl库移植1 什么是openssl可以这么说,只要你的应用程序和网络安全有关系,不管是http还是mqtt,那么都需要依赖到openssl;首先openssl是一个开源库,功
    发表于 11-04 06:43

    如何使用Linux regulator系统通过一个GPIO控制外部IC的电源

    Android: 使用Linux regulator系统通过一个GPIO控制外部IC的电源一、通过一个GPIO控制外部IC的电源,如下图,通过SDMMC0_PWR_H pin(连到CP
    发表于 12-29 06:22

    如何使用openssl制作一个开源C签名工具

    为了将签名与多维数据集程序员分离,我使用 openssl 制作了一个开源 C 签名工具各种构建环境中应该相当容易使用。
    发表于 12-06 07:52

    哪个X.509证书用于NodeMCU SSL连接?

    。 CA 证书(PEM 格式)加载到操作系统中的工具。 这记录在这里: https: 令人鼓舞的消息是 NodeMCU 将证书识别为 X.
    发表于 04-27 07:39

    该如何申请https的安全证书

    随着谷歌、百度等主流浏览器大力支持鼓励网站安装SSL证书进行https加密,保障网站安全,网站安装https证书已经成为一种趋势。那么,https
    发表于 08-29 11:51 2513次阅读

    密码学OpenSSL的入门基础知识整理合集

    本文是使用 OpenSSL 的密码学基础知识的两篇文章中的第一篇,OpenSSL Linux 和其他系统上流行的生产级库和
    的头像 发表于 02-07 15:29 3670次阅读
    密码学<b class='flag-5'>OpenSSL</b>的入门基础知识整理合集

    IP地址实现HTTPS访问:如何获取可信的SSL证书

    IP地址实现HTTPS地址访问,首先要获得浏览器可信的SSL证书,并且该SSL证书是操作系统默认根证书信任
    的头像 发表于 06-28 09:21 1.3w次阅读

    虚拟机:Linux生成签名SSL证书

    虚拟机:Linux生成签名SSL证书
    的头像 发表于 07-02 16:34 4680次阅读

    嵌入式Linux系统openssl库移植

    openssl库移植1 什么是openssl可以这么说,只要你的应用程序和网络安全有关系,不管是http还是mqtt,那么都需要依赖到openssl;首先openssl是一个开源库,功
    发表于 11-01 16:31 8次下载
    嵌入式<b class='flag-5'>Linux</b><b class='flag-5'>系统</b><b class='flag-5'>openssl</b>库移植

    openssl】利用openssl命令行快速生成RSA私钥

    openssl】如何利用openssl命令行快速生成RSA私钥?
    的头像 发表于 08-31 12:58 3333次阅读
    【<b class='flag-5'>openssl</b>】利用<b class='flag-5'>openssl</b>命令行快速生成RSA私钥

    飞凌i.MX8MP开发板OpenSSL的使用方法

    OKMX8MP-C开发板中,飞凌移植了OpenSSL工具, 作为一个基于密码学的安全开发包,OpenSSL提供的功能相当强大和全面,囊括了主要的密码算法、常用的密钥和
    的头像 发表于 08-25 15:19 711次阅读
    飞凌i.MX8MP开发板<b class='flag-5'>OpenSSL</b>的使用方法

    为什么嵌入式系统设计人员应该关注OpenSSL

      首先,一些基础知识。比如OpenSSL。常用的安全套接字层 (SSL) 提供了 Web 服务器和浏览器之间的加密链接技术,而 OpenSSL 则为保护网络通信的应用程序提供了加密库。它可以处理消息摘要、随机数、数字证书和签名
    的头像 发表于 06-29 10:25 520次阅读

    HTTPS是如何做安全认证的

    (传输层安全)协议来实现安全连接。 TLS 可以通过单向或双向的证书验证来实现。单向中,服务器分享其公共证书,以便客户可以验证它是一个受信任的服务器。另一个选择是双向验证。客户端和服
    的头像 发表于 10-09 15:54 1019次阅读