您当前的位置:首页 > 电脑百科 > 站长技术 > 服务器

Linux环境下使用openssl生成https证书

时间:2019-08-19 12:16:12  来源:  作者:

要生成证书的目录下建立几个文件和文件夹,有

./demoCA/ 
./demoCA/newcerts/ 
./demoCA/private/ 
./demoCA/index.txt (空文件,生成证书时会将数据记录写入) 
./demoCA/serial (在serial文件中写入第一个序列号“01”,在生成证书时会以此递增) 

概念:首先要有一个根证书,然后用根证书来签发用户证书。

用户进行证书申请:一般先生成一个私钥,然后用私钥生成证书请求(证书请求里应含有公钥信息),再利用证书服务器的根证书来签发证书。

特别说明:

(1)自签名证书(一般用于顶级证书、根证书): 证书的名称和认证机构的名称相同.

(2)根证书:根证书是CA认证中心给自己颁发的证书,是信任链的起始点。安装根证书意味着对这个CA认证中心的信任

数字证书则是由证书认证机构(CA)对证书申请者真实身份验证之后,用CA的根证书对申请人的一些基本信息以及申请人的公钥进行签名(相当于加盖发证书机构的公章)后形成的一个数字文件。数字证书包含证书中所标识的实体的公钥(就是说你的证书里有你的公钥),由于证书将公钥与特定的个人匹配,并且该证书的真实性由颁发机构保证(就是说可以让大家相信你的证书是真的),因此,数字证书为如何找到用户的公钥并知道它是否有效这一问题提供了解决方案。

openssl中有如下后缀名的文件

.key格式:私有的密钥

.csr格式:证书签名请求(证书请求文件),含有公钥信息,certificate signing request的缩写

.crt格式:证书文件,certificate的缩写

.crl格式:证书吊销列表,Certificate Revocation List的缩写

.pem格式:用于导出,导入证书时候的证书的格式,有证书开头,结尾的格式

常用证书协议

x509v3: IETF的证书标准

x.500:目录的标准

SCEP: 简单证书申请协议,用http来进行申请,数据有PKCS#7封装,数据其实格式也是PKCS#10的

PKCS#7: 是封装数据的标准,可以放置证书和一些请求信息

PKCS#10: 用于离线证书申请的证书申请的数据格式,注意数据包是使用PKCS#7封装这个数据

PKCS#12: 用于一个单一文件中交换公共和私有对象,就是公钥,私钥和证书,这些信息进行打包,加密放在存储目录中,CISCO放在NVRAM中,用户可以导出,以防证书服务器挂掉可以进行相应恢复。思科是.p12,微软是.pfx

再说步骤:

生成CA私钥--》生成CA证书请求--》自签名得到根证书(CA给自已颁发的证书)

生成私钥--》生成证书请求--》通过CA签名得到证书

----------------------------------------------------------------------------------------

1.生成X509格式的CA自签名证书

$openssl req -new -x509 -keyout ca.key -out ca.crt 
$openssl rsa -in ca.key -out ca.key.unsecure //生成一个不需要口令保护的私钥,不推荐,可以于去除密码 
* 对已生成csr请求的证书进行自签名的无交互全自动命令: 
$openssl -x509 -req -in csr/ca.csr -out newcerts/ca-cert.pem -signkey private/ca-key.pem -passin pass:999999 -days 3650 

2.生成服务端的私钥(key文件)及csr 文件

$openssl genrsa -des3 -out server.key 1024 
[无交互全自动:$openssl genrsa -des3 -passout pass:111111 -out server.key 1024] 
$openssl req -new -key server.key -out server.csr 
[无交互全自动:$openssl req -new -passin pass:111111 -key server.key -out server.csr -subj "/C=CN/ST=Guangdong/L=Shenzhen/O=atco company/OU=IT/CN=it.atco.com/emailAddress=atco@163.com"] 

3.生成客户端的私钥(key文件)及csr文件

$openssl genrsa -des3 -out client.key 1024 
[无交互全自动:$openssl genrsa -des3 -passout pass:111111 -out client.key 1024] 
$openssl req -new -key client.key -out client.csr 
[无交互全自动:$openssl req -new -passin pass:111111 -key client.key -out client.csr -subj "/C=CN/ST=Guangdong/L=Shenzhen/O=atco company/OU=IT/CN=it.atco.com/emailAddress=atco@163.com"] 

4.用生成的CA的证书为刚才生成的server.csr,client.csr文件签名

$openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key 
$openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key 
[无交互全自动:$openssl ca -key 999999 -in client.csr -out client.crt -config confopenssl.cnf -batch] 

(说明:ca私钥及证书位置在confopenssl.cnf中指定,设置好了可不带-config参数,-key为ca私钥密码,-in为待签名证书申请文件,-out为输出证书文件,-batch表示输出无需人工干预,注意一个证书不可被签名多次,因为index文件中有记录,在此生成的.crt也可换成其它如.pem格式证书)

*进行CA签名获取证书时,需要注意国家、省、单位需要与CA证书相同,否则会报:

The countryName field needed to be the same in the CA certificate (cn) and the request (sh)

*进行CA签名获取证书时,如果信息完全和已有证书信息相同会报错,即不能生成相同的证书,报错信息为:

failed to update database

TXT_DB error number 2

*在进行CA签名获取证书时,可对证书的有效起止时间作控制,默认有效期是一年,可用-days 3650这样的方式改为10年,如想更精确控制,可使用-startdate 和-enddate参数,如-startdate 120501000000Z -enddate 120601000000Z,日期格式为yyMMddHHmmssZ,分别表示年,月,日,时, 分,秒. 其中"Z"是遗留自初始的UTCTIME. 如果没有"Z",就允许两种附加组"[+/-]hh 'mm'",其中"hh"和"mm"分别为与GMT的时差和分差. 如果有"Z",则时间是以Zulu或GMT时间表示.注:如出现:unable to access the ./demoCA/newcerts directory

这时可找到配置文件,一般是openssl.cnf,修改配置文件项为你生成证书的路径

[ CA_default ]

dir = C:\OpenSSL\bin\demoCA (原值是:./demoCA,注意路径用双斜杠)

5. 生成p12格式证书 (思科是.p12,微软是.pfx)

$openssl pkcs12 -export -inkey client.key -in client.crt -out client.pfx 
$openssl pkcs12 -export -inkey server.key -in server.crt -out server.pfx 
[无交互全自动:$openssl pkcs12 -export -clcerts -in client.pem -inkey client.key -passin pass:111111 -out client.p12 -passout pass:111111] 

说明:-in 为欲转换为p12文件的证书文件,-inkey为与转换为p12文件的证书私钥文件,-passin 为私钥文件密码,-out为p12文件,-passout为p12文件打开密码

6.生成pem格式证书

有时需要用到pem格式的证书,可以用以下方式合并证书文件(crt)和私钥文件(key)来生成

$cat client.crt client.key> client.pem 
$cat server.crt server.key > server.pem 

7.PFX文件转换为X509证书文件和RSA密钥文件

$openssl pkcs12 -in server.pfx -nodes -out server.pem 
$openssl rsa -in server.pem -out server2.key 
$openssl x509 -in server.pem -out server2.crt 

8. 其他相关命令

$openssl rsa -noout -text -in ca.key //查看私钥 

生成

服务端证书:ca.crt, server.key, server.crt, server.pem, server.pfx

客户端证书:ca.crt, client.key, client.crt, client.pem, client.pfx



Tags:https证书   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
背景最近做微信小程序开发比较多,大家知道线上微信小程序为了安全起见,要求后端通信协议必须是HTTPS,这就要求需要安装证书。为了测试预发布线上环境,特地买了个最便宜的域名,为...【详细内容】
2021-09-14  Tags: https证书  点击:(125)  评论:(0)  加入收藏
随着互联网安全越来越被重视,几乎所有的大网站都已经默认启用了https协议,浏览器输入http网址也会自动跳转到https,比如百度、腾讯、搜狗、谷歌等等。简单来说就是https协议数...【详细内容】
2021-09-06  Tags: https证书  点击:(76)  评论:(0)  加入收藏
域名简单的说就是我们的网站,传统的网站建设完成后,访问域名的方式协议采用的是HTTP协议,当下互联网环境HTTP协议都会被浏览器标注为不安全网站,这里指的不安全不是说网站内容,是...【详细内容】
2021-04-16  Tags: https证书  点击:(203)  评论:(0)  加入收藏
国内的小微企业在近几年发展特别迅速,目前很多小微企业都是依附于网站而进行相关的业务,这种情况下就必须要保障网站的基本安全,才能更好的完成业绩,安装https证书(即SSL证书)是保...【详细内容】
2021-03-19  Tags: https证书  点击:(204)  评论:(0)  加入收藏
因为个人网站需求,要加上https。于是就在网上找免费的https证书来源。找到一个不错的。并且由此网站申请的证书可以被各大主流浏览器信任。chrome:chromeedge:edgefirefox:firef...【详细内容】
2020-08-12  Tags: https证书  点击:(137)  评论:(0)  加入收藏
tomcat中的证书配置参数如下:<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"maxThreads="150" SSLEnabled="true" scheme="https" secure="t...【详细内容】
2020-03-17  Tags: https证书  点击:(111)  评论:(0)  加入收藏
购买SSL证书要想使用https访问你的网址,首先得拥有颁发的SSL证书。我使用的是免费版,有效期为一年,过期后再重新申请。 申请SSL证书购买后,可在搜索框输入证书关键字进入到控...【详细内容】
2020-02-24  Tags: https证书  点击:(70)  评论:(0)  加入收藏
现在越来越多的网站都用https来保障自己网站的安全,而配置https就必须安装SSL证书,SSL证书一般都需要购买,价格也不太便宜,因此,很多站长都抱怨SSL证书的价格太贵,所以一直采取观...【详细内容】
2019-12-10  Tags: https证书  点击:(98)  评论:(0)  加入收藏
http和https的区别就是,后者在网络传输过程中会很安全,原因就是给http安装了SSL证书。 SSL证书有免费的和收费的,收费的顾名思义就是保护的方面更多,更安全。收费的像单域名的一...【详细内容】
2019-10-12  Tags: https证书  点击:(131)  评论:(0)  加入收藏
要生成证书的目录下建立几个文件和文件夹,有./demoCA/ ./demoCA/newcerts/ ./demoCA/private/ ./demoCA/index.txt (空文件,生成证书时会将数据记录写入) ./demoCA/serial (在s...【详细内容】
2019-08-19  Tags: https证书  点击:(410)  评论:(0)  加入收藏
▌简易百科推荐
阿里云镜像源地址及安装网站地址https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.3e221b111kK44P更新源之前把之前的国外的镜像先备份一下 切换到yumcd...【详细内容】
2021-12-27  干程序那些事    Tags:CentOS7镜像   点击:(1)  评论:(0)  加入收藏
前言在实现TCP长连接功能中,客户端断线重连是一个很常见的问题,当我们使用netty实现断线重连时,是否考虑过如下几个问题: 如何监听到客户端和服务端连接断开 ? 如何实现断线后重...【详细内容】
2021-12-24  程序猿阿嘴  CSDN  Tags:Netty   点击:(12)  评论:(0)  加入收藏
一. 配置yum源在目录 /etc/yum.repos.d/ 下新建文件 google-chrome.repovim /etc/yum.repos.d/google-chrome.repo按i进入编辑模式写入如下内容:[google-chrome]name=googl...【详细内容】
2021-12-23  有云转晴    Tags:chrome   点击:(7)  评论:(0)  加入收藏
一. HTTP gzip压缩,概述 request header中声明Accept-Encoding : gzip,告知服务器客户端接受gzip的数据 response body,同时加入以下header:Content-Encoding: gzip:表明bo...【详细内容】
2021-12-22  java乐园    Tags:gzip压缩   点击:(9)  评论:(0)  加入收藏
yum -y install gcc automake autoconf libtool makeadduser testpasswd testmkdir /tmp/exploitln -s /usr/bin/ping /tmp/exploit/targetexec 3< /tmp/exploit/targetls -...【详细内容】
2021-12-22  SofM    Tags:Centos7   点击:(7)  评论:(0)  加入收藏
Windows操作系统和Linux操作系统有何区别?Windows操作系统:需支付版权费用,(华为云已购买正版版权,在华为云购买云服务器的用户安装系统时无需额外付费),界面化的操作系统对用户使...【详细内容】
2021-12-21  卷毛琴姨    Tags:云服务器   点击:(6)  评论:(0)  加入收藏
参考资料:Hive3.1.2安装指南_厦大数据库实验室博客Hive学习(一) 安装 环境:CentOS 7 + Hadoop3.2 + Hive3.1 - 一个人、一座城 - 博客园1.安装hive1.1下载地址hive镜像路径 ht...【详细内容】
2021-12-20  zebra-08    Tags:Hive   点击:(9)  评论:(0)  加入收藏
以下是服务器安全加固的步骤,本文以腾讯云的CentOS7.7版本为例来介绍,如果你使用的是秘钥登录服务器1-5步骤可以跳过。1、设置复杂密码服务器设置大写、小写、特殊字符、数字...【详细内容】
2021-12-20  网安人    Tags:服务器   点击:(7)  评论:(0)  加入收藏
项目中,遇到了一个问题,就是PDF等文档不能够在线预览,预览时会报错。错误描述浏览器的console中,显示如下错误:nginx代理服务报Mixed Content: The page at ******** was loaded...【详细内容】
2021-12-17  mdong    Tags:Nginx   点击:(7)  评论:(0)  加入收藏
转自: https://kermsite.com/p/wt-ssh/由于格式问题,部分链接、表格可能会失效,若失效请访问原文密码登录 以及 通过密钥实现免密码登录Dec 15, 2021阅读时长: 6 分钟简介Windo...【详细内容】
2021-12-17  LaLiLi    Tags:SSH连接   点击:(16)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条