使用OpenSSL建立根CA及自签名证书制作过程
openssl 证书模板
openssl 证书模板`openssl` 是一个强大的工具,用于创建和管理 SSL/TLS 证书。
以下是使用`openssl` 生成证书模板的一些基本步骤和示例。
1. 生成自签名证书生成一个自签名证书用于测试或开发环境:```bashopenssl req -x509 -newkey rsa:2048 -nodes -keyout -out -days 365 ```这个命令将创建一个新的 RSA 2048 位密钥对,并使用它来创建一个自签名的 SSL 证书。
证书和私钥将分别存储在 `` 和 `` 文件中。
2. 生成 CSR (证书签名请求)如果你想让一个权威机构(如Let's Encrypt、DigiCert 等)为你签署证书,你需要先创建一个 CSR:```bashopenssl req -new -newkey rsa:2048 -nodes -keyout -out```这将生成一个新的 RSA 2048 位密钥对,并使用它来创建一个证书签名请求(CSR)。
私钥和 CSR 将分别存储在 `` 和 `` 文件中。
3. 使用 CSR 获取证书将 CSR 提交给权威机构,然后按照他们的指示获取签署的证书。
通常,他们会要求你提供一个 CA 证书链,这样他们可以验证他们自己的证书,并确保他们正在与一个可信任的实体通信。
4. 配置服务器一旦你有了证书和私钥,你就可以将它们配置到你的服务器上。
这通常涉及将证书和私钥文件复制到服务器的适当位置,并配置服务器软件(如 Nginx 或Apache)以使用这些文件。
具体的配置步骤取决于你使用的服务器软件。
5. 验证和测试在部署之前,验证你的证书是否有效以及你的服务器配置是否正确是很重要的。
你可以使用各种在线工具和服务来进行验证和测试,例如 SSL Labs 的SSL Server Test。
6. 更新和管理随着时间的推移,可能需要更新和管理你的 SSL/TLS 证书。
使用OpenSSL建立根CA及自签名证书制作过程
使用OpenSSL建立根CA及自签名证书制作过程2009-12-24 11:35:32| 分类:openssl |字号订阅Openssl版本:0.9.8 版本,可从处下载。
1.先建立如下目录结构:$home/testca # testca 是待建CA的主目录├─newcerts/ # newcerts子目录将存放CA签发过的数组证书(备份目录)├─private/ # private目录用来存放CA私钥└─conf/ # conf目录用来存放简化openssl命令行参数用的配置文件此外使用命令echo "01" > serialtouch index.txt在ca根目录下创建文件serial (用来存放下一个证书的序列号) 和indext.txt (证书信息数据库文件)。
1.生成CA的私钥和自签名证书 (根证书)创建配置文件:vi "$HOME/testca/conf/gentestca.conf"文件内容如下:####################################[ req ]default_keyfile = /home/cx/testCA/private/cakey.pemdefault_md = md5prompt = nodistinguished_name = ca_distinguished_namex509_extensions = ca_extensions[ ca_distinguished_name ]organizationName = ssorganizationalUnitName = sstccommonName = sstcCAemailAddress = GChen2@ #自己的邮件地址[ ca_extensions ]basicConstraints = CA:true########################################然后执行命令如下:cd "$HOME/testca"openssl req -x509 -newkey rsa:2048 -out cacert.pem -outform PEM -days 2190 -config "$HOME/testca/conf/gentestca.conf"执行过程中需要输入CA私钥的保护密码,假设我们输入密码: 888888可以用如下命令查看一下CA自己证书的内容openssl x509 -in cacert.pem -text –noout创建一个配置文件,以便后续CA日常操作中使用vi "$HOME/testca/conf/testca.conf"文件内容如下:########################################[ ca ]default_ca = testca # The default ca section[ testca ]dir = /home/cx/testCA # top dirdatabase = $dir/index.txt # index file.new_certs_dir = $dir/newcerts # new certs dircertificate = $dir/cacert.pem # The CA certserial = $dir/serial # serial no fileprivate_key = $dir/private/cakey.pem # CA private keyRANDFILE = $dir/private/.rand # random number filedefault_days = 365 # how long to certify fordefault_crl_days= 30 # how long before next CRLdefault_md = md5 # message digest method to useunique_subject = no # Set to 'no' to allow creation of# several ctificates with same subject.Policy = policy_any # default policy[ policy_any ]countryName = optionalstateOrProvinceName = optionallocalityName = optionalorganizationName = optionalorganizationalUnitName = optionalcommonName = suppliedemailAddress = optional########################################1.自己生成公钥密钥,并用测试CA签发数字证书我们在平时测试时,可以自己用openssl为服务器或用户生成公钥密钥,并用上面创建的CA签发对应私钥(密钥)的数字证书。
Linux命令高级技巧使用openssl生成和管理SSL证书
Linux命令高级技巧使用openssl生成和管理SSL证书使用OpenSSL生成和管理SSL证书一、介绍SSL证书是用于保护网站和网络通信安全的重要工具。
OpenSSL是一个开源加密库,能够提供各种加密算法和SSL/TLS协议的实现。
本文将介绍如何使用OpenSSL生成和管理SSL证书的高级技巧。
二、安装OpenSSL首先,确保已经在Linux系统上安装了OpenSSL。
可以通过以下命令来检查OpenSSL是否已安装:$ openssl version如果没有安装,可以使用包管理工具,如apt、yum等进行安装。
三、生成自签名证书自签名证书用于测试环境或本地开发,不需要经过权威机构的认证。
使用OpenSSL可以轻松生成自签名证书。
以下是生成自签名证书的步骤:1. 生成私钥:$ openssl genrsa -out private.key 20482. 生成证书签发请求(CSR):$ openssl req -new -key private.key -out csr.csr在生成CSR的过程中,需要填写一些证书相关的信息,如国家、地区、组织、通用名等。
3. 生成自签名证书:$ openssl x509 -req -in csr.csr -signkey private.key -out certificate.crt生成的certificate.crt即为自签名证书,可以用于配置Web服务器等需要SSL证书的场景。
四、生成CA证书除了自签名证书,我们也可以生成CA(Certificate Authority)证书,以进行证书签发。
以下是生成CA证书的步骤:1. 生成私钥:$ openssl genrsa -out ca.key 20482. 生成证书签发请求(CSR):$ openssl req -new -key ca.key -out ca.csr在生成CSR的过程中,需要填写一些证书相关的信息,如国家、地区、组织、通用名等。
openssl 用法
openssl 用法1. 简介OpenSSL是一个开源的加密库,它提供了一套丰富的加密算法和工具,可以用于安全通信、数字证书、密码学等领域。
本文将详细介绍OpenSSL的用法,包括生成证书、对称加密、非对称加密以及数字签名等方面。
2. 生成证书2.1 创建自签名证书使用OpenSSL可以创建自签名证书,自签名证书是一种不依赖于第三方机构签发的信任证书。
生成自签名证书的步骤如下:1.生成私钥:openssl genrsa -out private.key 20482.生成证书签名请求:openssl req -new -key private.key -out csr.csr3.使用私钥签名证书请求:openssl x509 -req -in csr.csr -signkeyprivate.key -out certificate.crt2.2 使用CA签发证书除了自签名证书,还可以向证书颁发机构(CA)申请证书。
步骤如下:1.生成私钥:openssl genrsa -out private.key 20482.生成证书签名请求:openssl req -new -key private.key -out csr.csr3.将证书签名请求发送给CA机构进行签发4.收到由CA签发的证书后,使用私钥对其进行验证:openssl x509 -req -incsr.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out certificate.crt3. 对称加密对称加密是一种加密算法,使用相同的密钥进行加密和解密。
OpenSSL支持多种对称加密算法,包括DES、AES等。
3.1 对称加密示例以下是使用AES对称加密算法进行加密和解密的示例:# 生成密钥openssl rand -out key.key 16# 加密文件openssl enc -aes-256-cbc -e -in plaintext.txt -out ciphertext.enc -pass file:. /key.key# 解密文件openssl enc -aes-256-cbc -d -in ciphertext.enc -out plaintext.txt -pass file:. /key.key4. 非对称加密与对称加密不同,非对称加密使用一对公钥和私钥进行加密和解密。
openssl做证书的方法 -回复
openssl做证书的方法-回复OpenSSL 是一个开源的软件包,可用于创建安全套接字层(SSL)和传输层安全性(TLS)协议的证书。
证书是用于身份验证和数据加密的数字文件。
下面将一步一步介绍OpenSSL 的使用方法来生成证书。
第一步:安装OpenSSL首先,您需要安装OpenSSL 软件包。
根据您的操作系统,可以在OpenSSL 官方网站(OpenSSL 在您的系统上可用。
第二步:生成私钥要生成证书,首先需要生成一个私钥。
私钥用于生成和验证证书,因此它必须严格保密。
您可以使用以下命令在命令行中生成私钥:openssl genpkey -algorithm RSA -out private.key此命令将使用RSA 算法生成一个私钥,并将其保存在private.key 文件中。
确保将文件保存在安全的位置,并为其设置适当的权限,以防止未经授权访问。
第三步:生成证书请求生成了私钥后,接下来需要生成证书请求。
证书请求包含您的公钥以及有关您身份的信息。
以下命令将生成证书请求:openssl req -new -key private.key -out certificate.csr在此命令中,-key 参数指定您的私钥文件,-out 参数指定将保存证书请求的文件名。
您将被要求输入与您身份相关的信息,如名称、单位、电子邮件地址等。
确保在输入这些信息时提供准确的数据。
第四步:自签名证书生成证书请求后,您可以使用OpenSSL 生成一个自签名证书。
自签名证书是由您自己颁发的,因此在一些特定情况下可能不被所有设备或应用程序接受。
但它在测试和开发环境中非常有用。
以下命令将生成自签名证书:openssl x509 -req -in certificate.csr -signkey private.key -out certificate.crt此命令使用您之前生成的私钥和证书请求来创建一个自签名证书。
最后的证书将保存在certificate.crt 文件中。
openssl制作证书流程
openssl制作证书流程OpenSSL是一个开源的加密工具包,可用于生成和管理数字证书。
下面是制作证书的基本流程:1. 安装OpenSSL:首先,确保计算机上已安装OpenSSL。
你可以从OpenSSL官方网站下载适合你操作系统的安装程序,并按照指示进行安装。
2. 创建私钥:使用以下命令在命令行中创建一个私钥文件:openssl genrsa -out private.key 2048这将生成一个2048位的RSA私钥,并将其保存在名为private.key的文件中。
私钥是保护证书的关键。
3. 生成证书请求(CSR):接下来,使用以下命令生成证书请求文件(CSR):openssl req -new -key private.key -out certificate.csr在执行此命令时,你需要提供一些相关的信息,如国家、组织名称等。
这些信息将包含在生成的CSR文件中。
4. 填写证书请求信息:执行上一步命令后,将会出现一系列问题,你需要根据实际情况回答。
其中最重要的是Common Name(通用名称),这是证书的域名。
请记住,如果你计划用于公共网站,确保输入的域名与你的网站域名完全匹配。
5. 签发证书:CSR文件是你向证书颁发机构(CA)申请证书的请求文件。
你需要将此文件上载到CA的网站或发送给CA。
该CA将根据你的请求和必要的身份验证程序签署并颁发证书。
6. 安装证书:一旦你收到证书文件,你可以通过以下命令将其与私钥文件合并:openssl pkcs12 -export -out certificate.pfx -inkey private.key -in certificate.crt -certfile ca.crt这将创建一个.pfx文件,其中包含你的私钥、证书和根CA证书。
通过以上步骤,你可以使用OpenSSL成功地制作证书。
请记住,在实际生产环境中,你可能需要购买商业证书,以确保其安全性和认可度。
linux中openssl生成证书和自签证书linux操作系统-电脑资料
linux中openssl生成证书和自签证书linux操作系统-电脑资料下面来给大家介绍关于linux中openssl生成证书和自签证书的例子,整个过程都讲述的非常详细有兴趣的朋友可进入参考,。
1.首先要生成服务器端的私钥(key文件):代码如下复制代码openssl genrsa -des3 -out server.key 1024运行时会提示输入密码,此密码用于加密key文件(参数des3便是指加密算法,当然也可以选用其他你认为安全的算法.),以后每当需读取此文件(通过openssl提供的命令或API)都需输入口令.如果觉得不方便,也可以去除这个口令,但一定要采取其他的保护措施!去除key文件口令的命令:代码如下复制代码openssl rsa -in server.key -out server.key2.openssl req -new -key server.key -out server.csr -config f生成Certificate Signing Request(CSR),生成的csr文件交给CA签名后形成服务端自己的证书.屏幕上将有提示,依照其指示一步一步输入要求的个人信息即可.3.对客户端也作同样的命令生成key及csr文件:代码如下复制代码openssl genrsa -des3 -out client.key 1024openssl req -new -key client.key -out client.csr -config f4.CSR文件必须有CA的签名才可形成证书.可将此文件发送到verisign等地方由它验证,要交一大笔钱,何不自己做CA呢.代码如下复制代码openssl req -new -x509 -keyout ca.key -out ca.crt -config f5.用生成的CA的证书为刚才生成的server.csr,client.csr文件签名:代码如下复制代码openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config fopenssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key -config f现在我们所需的全部文件便生成了.另:client使用的文件有:ca.crt,client.crt,client.keyserver使用的文件有:ca.crt,server.crt,server.key.crt文件和.key可以合到一个文件里面,本人把2个文件合成了一个.pem文件(直接拷贝过去就行了)以下步骤非必须代码如下复制代码[root@station23 CA]# mkdir ./newcerts[root@station23 CA]# touch ./{serial,index.txt}[root@station23 CA]# echo "00" > serial如果忘记以上操作,CA在签证时会出现如下错误,解决方法如下:代码如下复制代码[root@station23 test]# openssl ca -in my.csr -out ldap.crtUsing configuration from /etc/pki/tls/fI am unable to access the /etc/pki/CA/newcerts directory/etc/pki/CA/newcerts: No such file or directory[root@station23 test]# mkdir /etc/pki/CA/newcerts[root@station23 test]# openssl ca -in my.csr -out ldap.crtUsing configuration from /etc/pki/tls/f/etc/pki/CA/index.txt: No such file or directoryunable to open '/etc/pki/CA/index.txt'23016:error:02001002:system library:fopen:No such file or directory:bss_file.c:352:fopen('/etc/pki/CA/index.txt','r') 23016:error:20074002:BIO routines:FILE_CTRL:systemlib:bss_file.c:354:[root@station23 test]# touch /etc/pki/CA/index.txt[root@station23 test]# openssl ca -in my.csr -out ldap.crtUsing configuration from /etc/pki/tls/f/etc/pki/CA/serial: No such file or directoryerror while loading serial number23031:error:02001002:system library:fopen:No such file or directory:bss_file.c:352:fopen('/etc/pki/CA/serial','r')23031:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:354:[root@station23 test]# touch /etc/pki/CA/serial[root@station23 test]# echo 00 > /etc/pki/CA/serial。
openssl 证书流程 -回复
openssl 证书流程-回复OpenSSL是一个开放源代码的软件库,可以用于安全地建立和管理加密连接。
它提供了各种密码学功能,包括加密、解密、数字签名和认证等。
在网络安全领域,数字证书被广泛使用来验证服务器的身份和提供安全的通信。
本文将介绍OpenSSL的证书流程,涵盖生成证书请求、签署证书、验证证书以及使用证书等步骤。
一、生成证书请求(CSR)生成证书请求是证书颁发机构(CA)验证申请者身份的第一步。
以下是生成证书请求的步骤:1. 设置OpenSSL配置文件:OpenSSL使用配置文件来定义证书生成的各种选项。
我们可以通过编辑默认配置文件opensslf,或者创建自定义配置文件。
在配置文件中,我们可以设置一些必要的信息,例如国家、组织、通用名称(域名)等。
2. 生成私钥:生成证书请求需要一个RSA私钥对。
我们可以使用OpenSSL生成一个RSA私钥文件。
命令格式如下:openssl genrsa -out private.key 2048这将生成一个2048位的RSA私钥文件private.key。
3. 创建证书请求:接下来,我们可以使用私钥创建一个证书请求文件。
命令格式如下:openssl req -new -key private.key -out request.csr该命令将基于私钥生成一个新的证书请求文件request.csr。
二、签署证书证书签署是由CA执行的过程,用于验证证书请求者的身份并签署证书。
以下是签署证书的步骤:1. 配置CA证书在签署证书之前,我们需要设置CA证书文件,并创建一个签署配置文件。
这个配置文件定义了签署证书的选项,例如证书有效期、密钥长度等。
2. 生成CA私钥和自签名证书作为CA,我们首先需要生成自己的私钥和自签名证书。
命令格式如下:openssl req -new -x509 -keyout ca.key -out ca.crt -config caf这个命令将创建一个私钥文件ca.key和一个自签名的证书文件ca.crt。
openssl证书生成流程
openssl证书生成流程
生成OpenSSL证书的过程通常包括以下几个步骤:
1. 生成密钥对:使用OpenSSL命令行工具生成一个私钥和公钥对。
这个私钥将用于创建证书,公钥则与证书一起使用,以验证该证书是由正确的私钥签名的。
```bash
openssl genrsa -out private_ 2048
```
2. 创建证书请求:使用私钥创建一个证书请求(也称为CSR,即证书签名请求)。
这个请求将被发送给证书颁发机构(CA)或其他可信第三方进行签名。
```bash
openssl req -new -key private_ -out certificate_
```
3. 提交证书请求:将生成的CSR文件提交给CA进行签名。
CA将使用其私钥对CSR进行签名,生成一个证书。
4. 获取并安装证书:从CA获取已签名的证书,并将其安装到需要进行安全通信的服务器或客户端上。
5. 配置服务器或客户端:在服务器或客户端上配置OpenSSL,以便使用生成的证书和私钥进行安全通信。
这可能涉及将证书和私钥文件复制到适当的目录,并更新SSL配置以指向这些文件。
请注意,以上步骤是一个简化的示例,实际生成和使用OpenSSL证书的过程可能因具体情况而有所不同。
在生产环境中,建议使用受信任的证书颁发机构(CA)颁发的证书,以确保通信的安全性。
自签名证书 生成流程
自签名证书生成流程自签名证书生成流程介绍自签名证书是一种可以用于测试和内部使用的证书,相比于公信证书,它的安全性略有降低。
本文将详细介绍自签名证书生成的流程,使读者了解如何自行生成并应用自签名证书。
流程1.生成私钥–使用命令行工具或者在线工具生成RSA私钥,长度建议为2048位。
–将私钥保存到本地的安全位置,不要将其泄露给第三方。
2.创建证书请求(CSR)–使用openssl命令生成.pem格式的CSR文件。
–在生成CSR时,需提供必填信息:国家/地区、组织/机构名称、部门、通用名称等。
–CSR文件将用于生成自签名证书。
3.生成自签名证书–使用私钥和CSR文件,使用openssl命令生成自签名证书。
–自签名证书包含公钥、服务端信息等,并由私钥签名以保证其完整性。
–自签名证书可以使用多种格式(如.pem、.crt),根据需要进行选择。
4.应用自签名证书–将生成的自签名证书安装到需要使用的服务器或应用程序中。
–配置服务器或应用程序以使用自签名证书完成加密通信。
注意事项•自签名证书仅限于测试和内部使用。
在生产环境中,建议使用公信证书以保证安全性。
•自签名证书不受任何可信证书颁发机构(CA)认证,因此可能会被浏览器或其他应用程序警告。
•在生成私钥和CSR时,务必将其保存在安全的地方,避免泄露给未授权的人员。
•自签名证书的有效期由自己决定,在生成证书时可指定有效期限制。
•自签名证书的更新和吊销需要手动操作,没有自动化机制。
结论自签名证书生成虽然简单,但安全性相对较低,仅适用于测试和内部使用场景。
在公共环境中,建议使用公信证书来保证通信的安全性。
为了保证自签名证书的安全,建议定期更替私钥,并严格控制私钥的访问权限。
https学习笔记三----OpenSSL生成rootCA及签发证书
https学习笔记三----OpenSSL⽣成rootCA及签发证书⼀、openssl 简介⼆、安装openssl(linux CentOS7 32位)如果使⽤的是unix操作系统,可能安装系统的时候,这个库就已经有且存在了。
但是在使⽤前,需要注意下当前openssl的库的版本。
openssl versionOpenSSL 1.0.114 Mar 2012因为版本1.0.1是⼀个很重要的风⽔岭版本。
因为1.0.1是第⼀个⽀持TLS1.1和1.2的版本。
⽀持新的协议。
操作系统的选择也很重要,⽐如Ubuntu 12.04 LTS,客户端不⽀持SSL2。
这⾥安装以CentOS7系统为例:B、将下载的压缩包放在根⽬录下,解压缩,进⼊解压缩⽂件(得到openssl-openssl-1.0.0⽂件夹)cd openssl-1.0.0C、编译前配置openssl,执⾏命令:./config --prefix=/usr/local/openssl,其中 ( --prefix )参数为欲安装之⽬录,也就是安装后的档案会出现在该⽬录下。
D、编译openssl,执⾏命令: make install⼩插曲:安装openssl报错1、问题描述:安装完成,查看版本信息的时候报错了,缺少⼀个库⽂件libssl.so.1.1。
[root@b6e4cbd27773 /usr/local/openssl/bin]# openssl versionopenssl: error while loading shared libraries: libssl.so.1.1: cannot open sharedobject file: No such file or directory2、解决⽅法:有依赖没装libssl。
在/etc/ld.so.conf⽂件中写⼊openssl库⽂件的搜索路径,使⽤修改后的conf⽣效即可:echo "/usr/local/lib64" >> /etc/ld.so.confldconfig -v三、使⽤openssl⽣成RSA密钥对使⽤openssl的私钥产⽣公钥前,需要了解以下⼏点:1、key算法:openssl ⽀持⽣成RSA,DSA,ECDSA的密钥对,但是RSA是⽬前使⽤最普遍的。
多级ca证书的openssl生成
要生成多级CA(Certificate Authority)证书,可以使用OpenSSL 工具。
下面是使用OpenSSL 生成多级CA 证书的一般步骤:1. 配置OpenSSL 配置文件:在OpenSSL 的配置文件(通常命名为f 或openssl.conf)中,定义多级CA 的层次结构和相关参数。
你可以根据你的需求对配置文件进行修改。
2. 生成根证书和私钥:首先,你需要生成根证书的私钥。
运行以下OpenSSL 命令来生成根私钥文件:```openssl genpkey -algorithm RSA -out ca_private_key.pem```然后,使用以下命令生成根证书请求(CSR):```openssl req -new -key ca_private_key.pem -out ca_csr.pem```填写相关的证书请求信息。
3. 自签名根证书:使用以下命令自签名生成根证书:```openssl x509 -req -days 365 -in ca_csr.pem -signkey ca_private_key.pem -out ca_certificate.pem```这将生成根证书文件ca_certificate.pem。
4. 生成子证书请求和私钥:类似地,为每个子证书生成一个私钥和证书请求。
使用以下命令生成私钥和子证书请求:```openssl genpkey -algorithm RSA -out sub_private_key.pemopenssl req -new -key sub_private_key.pem -out sub_csr.pem```为每个子证书请求填写相关信息。
5. 使用根证书签名子证书:运行以下命令使用根证书签名子证书请求:```openssl x509 -req -days 365 -in sub_csr.pem -CA ca_certificate.pem -CAkey ca_private_key.pem -out sub_certificate.pem -CAcreateserial```这将生成子证书文件sub_certificate.pem。
使用Openssl生成自签名证书
使⽤Openssl⽣成⾃签名证书
1、⾸先查看系统是否安装了openssl
命令:openssl version -a
2、创建存放证书的⽬录
mkdir ssl && cd ssl
3、创建私钥
命令:openssl genrsa -out server.key 2048
4、通过命令⾏交互⽅式创建证书申请⽂件
命令:req -new -key server.key -out server.csr
5、⽤私钥签名证书申请⽂件,创建有效时间为10年的⾃签名证书
命令:openssl x509 -req -in server.csr -out server.crt -signkey server.key -days 3650
6、删除密钥中的密码(如果不删除密码,在应⽤加载的时候会出现输⼊密码进⾏验证的情况,不⽅便⾃动化部署。
)命令:openssl rsa -in server.key -out server.key
⽣成的证书:
7、⽣成pem格式的公钥
有些服务,需要有pem格式的证书才能正常加载,可以⽤下⾯的命令:
openssl x509 -in server.crt -out server.pem -outform PEM。
openssl制作证书指导手册
openssl制作证书指导手册制作证书是一项涉及到加密和安全的重要工作,而OpenSSL是一个强大的开源工具,可以用来创建和管理证书。
下面我将从多个角度来介绍如何使用OpenSSL制作证书。
首先,你需要安装OpenSSL工具包。
你可以从OpenSSL官方网站下载适合你操作系统的安装包,并按照官方指南进行安装。
一旦安装完成,你可以使用以下步骤来制作证书:1. 生成私钥:首先,你需要生成一个私钥文件。
你可以使用以下命令来生成一个2048位的RSA私钥:openssl genpkey -algorithm RSA -out privatekey.pem -pkeyopt rsa_keygen_bits:2048。
2. 生成证书请求:接下来,你需要生成一个证书请求文件(CSR),其中包含了你的公钥和一些基本信息,比如组织名称、单位名称等。
使用以下命令生成CSR:openssl req -new -key privatekey.pem -out csr.pem.3. 自签名证书:如果你只是想要一个自签名的证书(用于开发和测试),你可以使用以下命令生成一个自签名的证书:openssl req -x509 -days 365 -key privatekey.pem -in csr.pem -out certificate.pem.4. 签发证书,如果你需要向一个CA(证书颁发机构)申请证书,你需要将CSR文件发送给CA,并按照他们的指示进行操作。
一般来说,他们会签发一个证书给你,或者提供一个中间证书链。
总的来说,使用OpenSSL制作证书需要遵循一定的步骤和规范,同时也需要注意安全性和合规性。
希望以上介绍能够对你有所帮助。
利用openssl工具生成根证书及颁发子证书
利用openssl工具生成根证书及颁发子证书一 ) 首先创建CA根证书1) 生成RSA private key 给CA (3 DES 加密, PEM 格式):$ openssl genrsa -des3 -out rootca.key 10242) 产生一个X509结构,PEM格式的自签名证书(当然也可以由CA机构签名)$ openssl req -new -x509 -days 365 -key rootca.key -out rootca.crt3) 查看该根证书的详细内容$ openssl x509 -noout -text -in rootca.crt4) 验证证书有效性$ openssl verify -CAfile rootca.crt rootca.crt第一个为根证书,第二个为需要验证的子证书,由于是自签名,相当于自己给自己颁发的证书。
二 ) 用根证书颁发子证书1) 生成一个3DES 加密,PEM格式的RSA private KEY .$ openssl genrsa -des3 -out user.key 10242) 产生证书签名请求文件(PEM格式)$ openssl req -new -key user.key -out user.csr3) 使用CA根证书签名A 生成配置文件如下ca.config :[ ca ]default_ca=CA_own[ CA_own ]dir=C:/openssl/bincerts=C:/openssl/binnew_certs_dir=C:/openssl/bin //生成子证书的目录database=C:/openssl/bin/index.txt //生成子证书后会更新内容到此文件serial=C:/openssl/bin/serial.txt //子证书的序列号从此文件读取certificate=C:/openssl/bin/rootca.crt //根证书private_key=C:/openssl/bin/rootca.key //根证书的私钥default_days=365default_crl_days=30default_md=md5preserve=nopolicy=policy_anything[ policy_anything ]countryName=optionalstateOrProvinceName=optionallocalityName=optionalorganizationName=optional organizationalUnitName=optional commonName=suppliedemailAddress=optionalB 执行如下命令来签名openssl ca -config ca.config -out user.crt -infiles user.csr4) 验证证书有效性openssl verify -CAfile rootca.crt user.crt用rootca.crt的公钥验证user.crt的签名是否合法。
使用openssl生成证书
使用OpenSSL生成CA证书和签发用户证书李志平在这里我们使用OpenSSL自带的CA.pl来创建CA证书,使用它来签发用户证书,这个文件放在/usr/ssl/misc/CA.pl(我们假设把OpenSSL安装在/usr下)。
1.创建文件夹ca,存放要生成的CA证书和用户证书[root@localhost ~]# mkdir ca[root@localhost ~]# cd ca[root@localhost ca]#2.将/usr/ssl/misc/CA.pl和/usr/ssl/f拷贝到当前目录ca中[root@localhost ca]# cp /usr/ssl/misc/CA.pl ./[root@localhost ca]# cp /usr/ssl/f ./3.创建CA证书。
执行./CA.pl –newca需要填写如下:(红字部分是需要填写的,其中“按回车键”表示直接按回车键,有输入内容的,输入内容后再按回车键)[root@localhost ca]#./CA.pl -newcaCA certificate filename (or enter to create)(按回车键)Making CA certificate ...Generating a 1024 bit RSA private key...........++++++.............++++++writing new private key to './demoCA/private/cakey.pem'Enter PEM pass phrase:(输入密码,比如:1234)Verifying - Enter PEM pass phrase:(确认密码:1234)-----You are about to be asked to enter information that will be incorporatedinto your certificate request.What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blankFor some fields there will be a default value,If you enter '.', the field will be left blank.-----Country Name (2 letter code) [AU]:CNState or Province Name (full name) [Some-State]:BJLocality Name (eg, city) []:BJOrganization Name (eg, company) [Internet Widgits Pty Ltd]:IBM Organizational Unit Name (eg, section) []:IBMCommon Name (eg, YOUR name) []:benEmail Address []:ben@Please enter the following 'extra' attributesto be sent with your certificate requestA challenge password []:(按回车键)An optional company name []:(按回车键)Using configuration from /usr/ssl/fEnter pass phrase for ./demoCA/private/cakey.pem:(输入刚才的密码:1234)Check that the request matches the signatureSignature okCertificate Details:Serial Number:f9:53:35:b7:23:ff:c0:04ValidityNot Before: Jun 23 13:50:44 2010 GMTNot After : Jun 22 13:50:44 2013 GMTSubject:countryName = CNstateOrProvinceName = BJorganizationName = IBMorganizationalUnitName = IBMcommonName = benemailAddress = ben@X509v3 extensions:X509v3 Subject Key Identifier:DD:F6:B8:17:6F:91:F6:33:BB:FB:8B:85:71:A4:70:47:E7:03:A5:0F X509v3 Authority Key Identifier:keyid:DD:F6:B8:17:6F:91:F6:33:BB:FB:8B:85:71:A4:70:47:E7:03:A5:0FX509v3 Basic Constraints:CA:TRUECertificate is to be certified until Jun 22 13:50:44 2013 GMT (1095 days)Write out database with 1 new entriesData Base Updated[root@localhost ca]#至此,公共证书已经创建。
opensslca(签署和自建CA)
opensslca(签署和自建CA)openssl ca(签署和自建CA)自建CA总结:#建立数据库索引文件和序列文件[root@linux5 ~]# touch /etc/pki/CA/index.txt[root@linux5 ~]# echo "01" > /etc/pki/CA/serial#生成私钥[root@linux5 ~]# openssl genrsa -out /etc/pki/CA/private/cakey.pem#创建CA请求文件[root@linux5 ~]# openssl req -new -key /etc/pki/CA/private/cakey.pem -out rootCA.csr#自签署[root@linux5 ~]# openssl ca -selfsign -in rootCA.csr#把自签的证书放到/etc/pki/CA/下[root@linux5 ~]# cp /etc/pki/CA/newcerts/01.pem /etc/pki/CA/cacert.pem然后使用该CA给老王颁发证书总结#老王生成私钥[wang@linux5 ~]$ openssl genrsa -out wangkey.pem#老王生成请求文件[wang@linux5 ~]$ openssl req -new -key wangkey.pem -out wangwangwang.csr#老王将证书请求文件发给CA机构(国家,域名,组织必须和subject一致)[wang@linux5 ~]$ scp wangwangwang.csr ************.38.146:/root/#CA帮忙签[root@linux5 ~]# openssl ca -in wangwangwang.csr#CA将证书发给老王[root@linux5 ~]# scp /etc/pki/CA/newcerts/02.pem ************.38.146:~/证书请求文件使用CA的私钥签署之后就是证书,签署之后将证书发给申请者就是颁发证书。
利用openssl签署CA证书的方法
利⽤openssl签署CA证书的⽅法证书的⽅法签署CA证书虽然在安装MOD_SSL时已经使⽤ make certificate 命令建⽴了服务器的证书签名,但是有时你可能需要改变它。
有很多⾃动的脚本可以实现它,但是最可靠的⽅法是⼿⼯签署证书。
下⾯就两种⽅法做⼀下总结:⼀、⼿⼯⾸先我假定你已经安装好了openssl和MOD_SSL,如果你的openssl安装时的prefix设置为/usr/local/openssl,那么把/usr/local/openssl/bin加⼊执⾏⽂件查找路径。
还需要MOD_SSL源代码中的⼀个脚本,它在MOD_SSL的源代码⽬录树下的pkg.contrib⽬录中,⽂件名为 sign.sh。
将它拷贝到 /usr/local/openssl/bin 中。
第⼀步:先建⽴⼀个 CA 的证书,⾸先为 CA 创建⼀个 RSA 私⽤密钥,[S-1]openssl genrsa -des3 -out ca.key 1024系统提⽰输⼊ PEM pass phrase,也就是密码,输⼊后牢记它。
⽣成 ca.key ⽂件,将⽂件属性改为400,并放在安全的地⽅。
[S-2]chmod 400 ca.key你可以⽤下列命令查看它的内容,[S-3]openssl rsa -noout -text -in ca.key利⽤ CA 的 RSA 密钥创建⼀个⾃签署的 CA 证书(X.509结构)[S-4]openssl req -new -x509 -days 3650 -key ca.key -out ca.crt然后需要输⼊下列信息:Country Name: cn 两个字母的国家代号State or Province Name: An Hui 省份名称Locality Name: Bengbu 城市名称Organization Name: Family Network 公司名称Organizational Unit Name: Home 部门名称Common Name: Chen Yang 你的姓名Email Address: sunstorm@ Email地址⽣成 ca.crt ⽂件,将⽂件属性改为400,并放在安全的地⽅。
OPENSSL操作(CA证书)
OpenSSL操作步骤第 1 部分 OpenSSL实践切换到/etc/pki/CA/目录(1)创建CA私钥:openssl genrsa -out private/ca.key 1024(2)加密CA私钥(保护私钥信息):openssl rsa -in ca.key -out cakey.pem(3)创建CA自签名证书(使用上一步创建的CA私钥来签名):openssl req -new -days 365 -x509 -key private/ca.key -out cacert.pem(4)创建服务器私钥:openssl genrsa -des3 -out private/server.key 1024(5)加密服务器私钥(保护私钥信息):openssl rsa -in private/server.key -out private/serverkey.pem(6)创建申请服务器所需证书的请求:openssl req -new -days 365 -key server.key -out server.csr(7)CA私钥和序列号文件demoCA/serial, demoCA/index.txtmkdir certs crl newcertstouch index.txt serialecho 01 > serial(8)CA签署服务器证书:openssl ca -days 365 -keyfile private/ca.key -cert cacert.pem -outdir ./ -in server.csr -out server.pem(9)转换证书格式:openssl x509 -in server.pem -out certs/server.crtopenssl x509 -in cacert.pem -out certs/cacert.crt(10)产生Java客户端私钥文件:keytool -genkey -keyalg RSA -alias ztyHotelService -keystore ztyHotelService.jks -storepass f1l89rmy -storetype jks(11)产生Java客户端证书请求:keytool -certreq -alias ztyHotelService -keyalg RSA -file ztyHotelService.csr -keystore ztyHotelService.jks(12)CA签署Java客户端证书:openssl ca -days 365 -keyfile private/ca.key -cert cacert.pem -outdir ./ -in ztyHotelService.csr -out ztyHotelService.pem(13)转换格式:openssl x509 -in ztyHotelService.pem -out certs/ztyHotelService.cer(14)导入CA证书到jks文件并信任之(由此CA所签署的所有证书也因此在信任之列):keytool -import -alias root -trustcacerts -file certs/cacert.crt -keystore ztyHotelService.jks(15)导入自己的证书到jks文件(至此,此jks文件包括了建立SSL连接所需所有信息):keytool -import -alias ztyHotelService -trustcacerts -file certs/ztyHotelService.cer -keystore ztyHotelService.jks(16)转换成pkcs12格式,为客户端安装所用openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.pfx第 2 部分错误信息➢服务器私钥密码输入错误:。
openssl创建CA、申请证书及其给web服务颁发证书
openssl创建CA、申请证书及其给web服务颁发证书一、创建私有的CA1)查看openssl的配置文件:/etc/pki/tls/f2)创建所需的文件touch /etc/pki/CA/index.txt echo 01 >/etc/pki/CA/serial3)CA自签证书生成私钥cd /etc/pki/CA(umask 066;openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)4)生成自签名证书openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -days 7300 -out /etc/pki/CA/cacert.pem-new:生成新的证书签署请求-x509:专用CA生成自签证书-key:生成请求时用到的私钥文件-days n:证书的有限期-out /path/to/somecertfile:证书的保存路径代码演示:二、颁发及其吊销证书1)颁发证书,在需要使用证书的主机生成证书请求,给web服务器生成私钥(本实验在另一台主机上)(umask 066;openssl genrsa -out /etc/httpd/ssl/httpd.key 2048)2)生成证书申请文件openssl req -new-key /etc/httpd/ssl/httpd.key -days 365 -out /etc/httpd/ssl/httpd.csr3)将证书文件传给CA,CA签署证书并将证书颁发给请求者,注意:默认国家、省和公司必须和CA一致openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 3654)查看证书中的信息opessl x509 -in /path/from/cert_file -noout -text|sbuject|serial|dates5)吊销证书,在客户端获取要吊销的证书的serialopenssl x509 -in /PATH/FROM/CERT_FILE -noout -serial -subject6)在CA上,根据客户提交的serial与subject信息,对比检验是否与index.txt文件中的信息一致吊销证书openssl ca -revoke /etc/pki/CA/newcerts/ SERIAL.pem7)生成吊销证书的编号(第一次吊销一个证书时才需要执行)echo 01 > /etc/pki/CA/crlnumber8)更新证书吊销列表,查看crl文件openssl ca -gencrl -out /etc/pki/CA/crl/ca.crlopenssl crl -in /etc/pki/CA/crl/ca.crl -noout -text9)安装mod_ssl模块并修改/etc/httpd/conf.d/ssl.conf配置文件DocumentRoot '/web/pma'ServerName :443AllowOverride AllOptions Nonerequire all grantedSSLCertificateFile /etc/httpd/ssl/httpd.crtSSLCertificateFile /etc/httpd/ssl/httpd.key图示:授权目录10)测试openssl s_client [-connect host:port] [-cert filename] [-CApath directory] [-CAfile filename]实例:openssl s_client -connect :443 -CAfile /etc/pki/CA/cacert.pemcurl --cacert /etc/pki/CA/cacert.pem /实现图示:代码演示:不同主机之间拷贝文件小技巧:在使用ssh远程登录时提示:remote host indentification has changed!则需清除~/.ssh/known_hosts文件即可,因为系统检测出rsa钥匙发生了改变。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
使用OpenSSL建立根CA及自签名证书制作过程2009-12-24 11:35:32| 分类:openssl |字号订阅Openssl版本:0.9.8 版本,可从处下载。
1.先建立如下目录结构:$home/testca # testca 是待建CA的主目录├─newcerts/ # newcerts子目录将存放CA签发过的数组证书(备份目录)├─private/ # private目录用来存放CA私钥└─conf/ # conf目录用来存放简化openssl命令行参数用的配置文件此外使用命令echo "01" > serialtouch index.txt在ca根目录下创建文件serial (用来存放下一个证书的序列号) 和indext.txt (证书信息数据库文件)。
1.生成CA的私钥和自签名证书 (根证书)创建配置文件:vi "$HOME/testca/conf/gentestca.conf"文件内容如下:####################################[ req ]default_keyfile = /home/cx/testCA/private/cakey.pemdefault_md = md5prompt = nodistinguished_name = ca_distinguished_namex509_extensions = ca_extensions[ ca_distinguished_name ]organizationName = ssorganizationalUnitName = sstccommonName = sstcCAemailAddress = GChen2@ #自己的邮件地址[ ca_extensions ]basicConstraints = CA:true########################################然后执行命令如下:cd "$HOME/testca"openssl req -x509 -newkey rsa:2048 -out cacert.pem -outform PEM -days 2190 -config "$HOME/testca/conf/gentestca.conf"执行过程中需要输入CA私钥的保护密码,假设我们输入密码: 888888可以用如下命令查看一下CA自己证书的内容openssl x509 -in cacert.pem -text –noout创建一个配置文件,以便后续CA日常操作中使用vi "$HOME/testca/conf/testca.conf"文件内容如下:########################################[ ca ]default_ca = testca # The default ca section[ testca ]dir = /home/cx/testCA # top dirdatabase = $dir/index.txt # index file.new_certs_dir = $dir/newcerts # new certs dircertificate = $dir/cacert.pem # The CA certserial = $dir/serial # serial no fileprivate_key = $dir/private/cakey.pem # CA private keyRANDFILE = $dir/private/.rand # random number filedefault_days = 365 # how long to certify fordefault_crl_days= 30 # how long before next CRLdefault_md = md5 # message digest method to useunique_subject = no # Set to 'no' to allow creation of# several ctificates with same subject.Policy = policy_any # default policy[ policy_any ]countryName = optionalstateOrProvinceName = optionallocalityName = optionalorganizationName = optionalorganizationalUnitName = optionalcommonName = suppliedemailAddress = optional########################################1.自己生成公钥密钥,并用测试CA签发数字证书我们在平时测试时,可以自己用openssl为服务器或用户生成公钥密钥,并用上面创建的CA签发对应私钥(密钥)的数字证书。
假设,我们就用刚才创建CA的操作系统用户为名为testuser的用户创建数字证书,我们要把待创建的私钥、证书等都放在目录$HOME/testuser下:Ø创建密钥和证书请求(证书请求里包含了公钥)创建$HOME/testuser目录并执行命令:mkdir $HOME/testusercd $HOME/testuseropenssl req -newkey rsa:1024 -keyout testkey.pem -keyform PEM -out testreq.pem -outform PEM -subj "/O=TestCom/OU=TestOU/CN=testuser"执行过程中需要输入私钥的保护密码,假设我们输入密码: 222222其中的CN最好和服务器名或IP地址一致。
执行完后,testkey.pem即为用户的密钥,而testreq.pem即为证书请求。
可以用openssl req -in testreq.pem -text -noout查看证书请求的内容。
Ø用测试CA为testuser签发证书同样还在$HOME/testuser目录下执行命令:openssl ca -in testreq.pem -out testcert.pem -config"$HOME/testca/conf/testca.conf"执行过程中需要输入CA的密钥保护密码(刚才设置的888888),并且最后询问你是否要给该用户签发证书时要选y。
执行完后,testcert.pem即为证书,可以用命令openssl x509 -in testcert.pem -text -noout查看证书内容。
Ø制作一个PKCS12格式的文档(个人数字证书)我们制作的这个PKCS#12文件将包含密钥、证书和颁发该证书的CA证书。
该文件可以直接用于服务器数字证书或个人数字证书。
把前几步生成的密钥和证书制作成一个pkcs12文件的方法执行命令:openssl pkcs12 -export -in testcert.pem -inkey testkey.pem -out testuser.p12 -name testuser -chain -CAfile "$HOME/testca/cacert.pem"执行过程中需要输入保护密钥的密码(222222),以及新的保护pkcs12文件的密码。
1.CA 的日常操作Ø根据证书申请请求签发证书假设收到一个证书请求文件名为req.pem,文件格式应该是PKCS#10格式(标准证书请求格式)。
首先可以查看一下证书请求的内容,执行命令:openssl req -in req.pem -text -noout将看到证书请求的内容,包括请求者唯一的名字(DN)、公钥信息(可能还有一组扩展的可选属性)。
执行签发命令:openssl ca -in req.pem -out cert.pem -config"$HOME/testca/conf/testca.conf"执行过程中会要求输入访问CA的私钥密码(刚才设置的888888)。
完成上一步后,签发好的证书就是cert.pem,另外$HOME/testca/newcerts 里也会有一个相同的证书副本(文件名为证书序列号)。
你可以执行以下语句来查看生成的证书的内容:openssl x509 -in cert.pem -text –nooutØ吊销证书(作废证书)一般由于用户私钥泄露等情况才需要吊销一个未过期的证书。
(当然我们用本测试CA时其时很少用到该命令,除非专门用于测试吊销证书的情况)假设需要被吊销的证书文件为cert.pem,则执行以下命令吊销证书:openssl ca -revoke cert.pem -config "$HOME/testca/conf/testca.conf"生成证书吊销列表文件(CRL)准备公开被吊销的证书列表时,可以生成证书吊销列表(CRL),执行命令如下:openssl ca -gencrl -out testca.crl -config"$HOME/testca/conf/testca.conf"还可以添加-crldays和-crlhours参数来说明下一个吊销列表将在多少天后(或多少小时候)发布。
可以用以下命令检查testca.crl的内容:openssl crl -in testca.crl -text -noout。