openssl生成证书

openssl生成证书

那年仲夏 提交于 2020-03-09 07:41:28
Key是私用秘钥,通常是RSA算法 Csr是证书请求文件,用于申请证书。在制作csr文件时,必须使用自己的私钥来签署申,还可以设定一个密钥。 crt是CA认证后的证书文,签署人用自己的key给你签署凭证。 key的生成 openssl genrsa -out server.key 2048 这样是生成RSA密钥,openssl格式,2048位强度。server.key是密钥文件名。 csr的生成 openssl req -new -key server.key -out server.csr, 需要依次输入国家,地区,组织,email。最重要的是有一个common name,可以写你的名字或者域名。如果为了https申请,这个必须和域名吻合,否则会引发浏览器警报。生成的csr文件讲给CA签名后形成服务端自己的证书。 crt的生成 openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt 生成的server.crt文件 https://www.cnblogs.com/fangpengchengbupter/p/7999704.html https://blog.csdn.net/zxygww/article/details/16119213 https://www.jianshu

自建 ca 及使用 ca 颁发证书

丶灬走出姿态 提交于 2020-03-05 11:19:32
创建CA: 一、安装openssl [root@localhost ~]# yum install -y openssl 二、创建CA的相关文件及目录 mkdir /opt/root_ca &&\   cd root_ca &&\   mkdir newcerts private crl &&\   touch index.txt &&\   touch serial &&\   echo 01 >serial &&\ 说明:    #newcerts目录用于存放CA签署(颁发)过的数字证书(证书备份目录)。   #private目录用于存放CA的私钥。   #文件serial和index.txt分别用于存放下一个证书的序列号和证书信息数据库。   #文件serial填写第一个证书序列号(如10000001),之后每前一张证书,序列号自动加1。 三、修改openssl配置文件 vim /etc/pki/tls/openssl.cnf [ CA_default ] dir = /opt/root_ca [ policy_match ] countryName = match stateOrProvinceName = optional organizationName = optional organizationalUnitName = optional commonName =

openssl 证书请求和自签名命令req详解

百般思念 提交于 2020-03-05 11:16:37
1、密钥、证书请求、证书概要说明 在证书申请签发过程中,客户端涉及到密钥、证书请求、证书这几个概念,初学者可能会搞不清楚三者的关系,网上有的根据后缀名来区分三者,更让人一头雾水。我们以申请证书的流程说明三者的关系。客户端(相对于CA)在申请证书的时候,大体上有三个步骤: 第一步:生成客户端的密钥,即客户端的公私钥对,且要保证私钥只有客户端自己拥有。 第二步:以客户端的密钥和客户端自身的信息(国家、机构、域名、邮箱等)为输入,生成证书请求文件。其中客户端的公钥和客户端信息是明文保存在证书请求文件中的,而客户端私钥的作用是对客户端公钥及客户端信息做签名,自身是不包含在证书请求中的。然后把证书请求文件发送给CA机构。 第三步:CA机构接收到客户端的证书请求文件后,首先校验其签名,然后审核客户端的信息,最后CA机构使用自己的私钥为证书请求文件签名,生成证书文件,下发给客户端。此证书就是客户端的身份证,来表明用户的身份。 至此客户端申请证书流程结束,其中涉及到证书签发机构CA,CA是被绝对信任的机构。如果把客户端证书比作用户身份证,那么CA就是颁发身份证的机构,我们以https为例说明证书的用处。 为了数据传输安全,越来越多的网站启用https。在https握手阶段,服务器首先把自己的证书发送给用户(浏览器),浏览器查看证书中的发证机构,然后在机器内置的证书中(在PC或者手机上

(13) openssl ca(签署和自建CA)

≯℡__Kan透↙ 提交于 2020-03-05 11:14:03
用于签署证书请求、生成吊销列表CRL以及维护已颁发证书列表和这些证书状态的数据库。因为一般人无需管理crl,所以本文只介绍openssl ca关于证书管理方面的功能。 证书请求文件使用CA的私钥签署之后就是证书 , 签署之后将证书发给申请者就是颁发证书 。 在签署时,为了保证证书的完整性和一致性,还应该对签署的证书生成数字摘要,即使用单向加密算法。 由于 openssl ca命令对配置文件(默认为/etc/pki/tls/openssl.cnf)的依赖性非常强 ,所以建议结合。 在配置文件中指定了签署证书时所需文件的结构,默认openssl.cnf中的结构要求如下: [ CA_default ] dir = /etc/pki/CA # 定义路径变量 certs = $dir/certs # 已颁发证书的保存目录 database = $dir/index.txt # 数据库索引文件 new_certs_dir = $dir/newcerts # 新签署的证书保存目录 certificate = $dir/cacert.pem # CA证书路径名 serial = $dir/serial # 当前证书序列号 private_key = $dir/private/cakey.pem # CA的私钥路径名 其中目录/etc/pki/CA/{certs,newcerts,private

BizTalk证书相关操作

半腔热情 提交于 2020-03-05 11:13:00
OPEN SSL 神技能 从PFX文件中导出私钥 openssl pkcs12 -in Cert.pfx -nocerts -nodes -out private_pc.key 从PFX文件中导出CSR文件 openssl req -new -key private_pc.key -out request.csr 将私钥变更为PEM格式 openssl rsa -in private_pc.key -out private.pem 将公钥变更为PEM格式 openssl x509 -in ce49258280294e4f.crt -out public.pem 比较Private Key, 证书是否正确 以下三个值必须一致。CSR的MD5值不受组织名称之类的影响 openssl req -noout -modulus -in request.csr | openssl md5 1e602c181de50101bcfa2bf71ae26459 openssl rsa -noout -modulus -in private.key | openssl md5 1e602c181de50101bcfa2bf71ae26459 openssl x509 -noout -modulus -in ssl.crt | openssl md5

(15) openssl签署和自签署证书的多种实现方式

可紊 提交于 2020-03-05 11:12:27
1.采用自定义配置文件的实现方法 1.1 自建CA 自建CA的机制:1.生成私钥;2.创建证书请求;3.使用私钥对证书请求签名。 由于测试环境,所以自建的CA只能是根CA。 所使用的配置文件如下: [default] name = root-ca /* 变量*/ default_ca = CA_default name_opt = ca_default cert_opt = ca_default [CA_default] home = . /* 变量*/ database = $home/db/index serial = $home/db/serial crlnumber = $home/db/crlnumber certificate = $home/$name.crt private_key = $home/private/$name.key RANDFILE = $home/private/random new_certs_dir = $home/certs unique_subject = no copy_extensions = none default_days = 3650 default_crl_days = 365 default_md = sha256 policy = policy_to_match [policy_to_match] countryName

apache 搭建双向证书认证

风流意气都作罢 提交于 2020-03-02 09:36:15
一. CA自签 1.建立 CA 目录结构 mkdir -p ./demoCA/{private,newcerts} touch ./demoCA/index.txt echo 01 > ./demoCA/serial # 生成 CA 的 RSA 密钥对 openssl genrsa -des3 -out ./demoCA/private/cakey.pem 2048 # 生成 CA 证书请求 openssl req -new -x509 -days 3650 -key ./demoCA/private/cakey.pem -out careq.pem #复制一份证书 cp cacert.pem ca.crt 二.生成和签发服务器、客户端证书 #修改openssl配置文件 /etc/pki/tls/openssl.cnf 设置好 dir = /root/ssl/demoCA (生成CA的路径) # 生成服务器的 RSA 密钥对 openssl genrsa -des3 -out server.key 运行时会提示输入密码,此密码用于加密key文件(参数des3便是指加密算法,当然也可以选用其他你认为安全的算法.),以后每当需读取此文件(通过openssl提供的命令或API)都需输入口令.如果觉得不方便,也可以去除这个口令。 去除key文件口令的命令: openssl rsa -in

openssl生成pem数字证书

送分小仙女□ 提交于 2020-02-28 22:24:55
openssl生成pem数字证书 生成RSA密钥的方法 openssl genrsa -des3 -out privkey.pem 2048 这个命令会生成一个2048位的密钥,同时有一个des3方法加密的密码,如果你不想要每次都输入密码,可以改成: openssl genrsa -out privkey.pem 2048 建议用2048位密钥,少于此可能会不安全或很快将不安全。 生成一个证书请求 openssl req -new -key privkey.pem -out cert.csr 这个命令将会生成一个证书请求,当然,用到了前面生成的密钥 privkey.pem 文件 这里将生成一个新的文件 cert.csr ,即一个证书请求文件,你可以拿着这个文件去数字证书颁发机构(即CA)申请一个数字证书。CA会给你一个新的文件 cacert.pem ,那才是你的数字证书。 如果是自己做测试,那么证书的申请机构和颁发机构都是自己。就可以用下面这个命令来生成证书: openssl req -new -x509 -key privkey.pem -out cacert.pem -days 3650 这个命令将用上面生成的密钥 privkey.pem 生成一个数字证书 cacert.pem 以上步骤或直接使用一个命令即可: openssl req -x509 -newkey rsa

Openssl命令行用法简介

烂漫一生 提交于 2020-02-26 00:32:37
去年推出的一些文章中曾介绍过使用openssl命令行完成SHA1、DES、RSA等运算的方法。但其实openssl支持的加解密、签名验签、摘要算法远不止这些。根据不同的应用场景,用户可以自行选择需要的功能。本期介绍如何查阅openssl指令用法。 第一步:查看openssl支持哪些算法指令 命令行输入openssl --help回车可见图1所示,列出了包括签名验签、证书操作、摘要运算、加解密运算等相关指令。 图1 第二步:查看某一具体指令用法 我们以aes-128-ecb指令为例进行说明。该指令可以实现对数据进行aes加密的功能,密钥长度128bits,加密模式为ecb(不带初始向量)。 在命令行输入openssl aes-128-ecb --help 回车可见图2所示,列出了支持输入的参数项。 图2 例如 -in 对输入的文件内容进行加密 -out 将加密后的数据输出到目标文件中 -e 加密运算 -K/-iv 输入密钥或者初始向量iv 下面我们开始测试。 步骤一:创建mingwen.txt并写入数据 touch mingwen.txt echo "1234567812345678" > mingwen.txt 步骤二:查看数据写入是否成功 cat mingwen.txt 步骤三:加密运算 openssl aes-128-ecb -e -in mingwen.txt -out

那些证书相关的玩意儿(SSL,X.509,PEM,DER,CRT,CER,KEY,CSR,P12等)

a 夏天 提交于 2020-02-21 22:55:04
那些证书相关的玩意儿(SSL,X.509,PEM,DER,CRT,CER,KEY,CSR,P12等) 来自: https://www.cnblogs.com/guogangj/p/4118605.html 之前没接触过证书加密的话,对证书相关的这些概念真是感觉挺棘手的,因为一下子来了一大堆新名词,看起来像是另一个领域的东西,而不是我们所熟悉的编程领域的那些东西,起码我个人感觉如此,且很长时间都没怎么搞懂.写这篇文章的目的就是为了理理清这些概念,搞清楚它们的含义及关联,还有一些基本操作. SSL SSL - Secure Sockets Layer,现在应该叫"TLS",但由于习惯问题,我们还是叫"SSL"比较多.http协议默认情况下是不加密内容的,这样就很可能在内容传播的时候被别人监听到,对于安全性要求较高的场合,必须要加密,https就是带加密的http协议,而https的加密是基于SSL的,它执行的是一个比较下层的加密,也就是说,在加密前,你的服务器程序在干嘛,加密后也一样在干嘛,不用动,这个加密对用户和开发者来说都是透明的.More:[ 维基百科 ] OpenSSL - 简单地说,OpenSSL是SSL的一个实现,SSL只是一种规范.理论上来说,SSL这种规范是安全的,目前的技术水平很难破解,但SSL的实现就可能有些漏洞,如著名的"心脏出血"