您当前的位置:首页 > 电脑百科 > 电脑知识

制作自己的SSL证书

时间:2020-10-13 10:59:03  来源:  作者:

先做一个服务端单向认证,最后完成一个服务端客户端双向认证

 

制作一个CA私服,取名叫testca。

### 准备CA工作目录

```shell

mkdir "$HOME/testca"

cd "$HOME/testca"

mkdir newcerts private conf

chmod g-rwx,o-rwx private

echo "01" > serial

touch index.txt

```

$HOME/testca为待建CA的主目录

newcerts子目录将存放CA签署(颁发)过的数字证书(证书备份目录)

private目录用于存放CA的私钥

conf只是用于存放一些简化参数用的配置文件

serial和index.txt分别用于存放下一个证书的序列号和证书信息数据库

### 生成根证书

#### 配置根证书

创建testca根证书配置文件及内容

```shell

vi "$HOME/testca/conf/gentestca.conf"

```

内容如下

```shell

####################################

[ req ]

default_keyfile = $ENV::HOME/testca/private/cakey.pem

default_md = md5

prompt = no

distinguished_name = ca_distinguished_name

x509_extensions = ca_extensions

 

[ ca_distinguished_name ]

organizationName = dongnaoedu

organizationalUnitName = dongnao

commonName = ca.dongnaoedu.com

emailAddress = 805921455@qq.com

 

[ ca_extensions ]

basicConstraints = CA:true

########################################

```

制作自己的SSL证书

 

申请根证书

 

```shell

cd "$HOME/testca"

openssl req -x509 -newkey rsa:2048 -out cacert.pem -outform PEM -days 2190 -config "$HOME/testca/conf/gentestca.conf"

# req 表示发起一个证书签名请求

# -x509 用x509结构替代cert

# -nwekey rsa:2048,新建一个2048 bit的rsa秘钥

# -out 输出的证书文件

# -outform 输出的格式,DER或者PEM

# -days 有效时间2190天

# -config 请求的配置文件,这里是根证书的配置信息

```

执行过程中需要输入CA私钥的保护密码,假设我们输入密码: 123456

查看一下自己CA证书的内容

```shell

openssl x509 -in cacert.pem -text -noout

```

#### 准备根证书配置文件

方便以后用它来生成,在它下面的子证书

```shell

vi "$HOME/testca/conf/testca.conf"

```

写入文件内容

```shell

####################################

[ ca ]

default_ca = testca # The default ca section

 

[ testca ]

dir = $ENV::HOME/testca # top dir

database = $dir/index.txt # index file.

new_certs_dir = $dir/newcerts # new certs dir

 

certificate = $dir/cacert.pem # The CA cert

serial = $dir/serial # serial no file

private_key = $dir/private/cakey.pem # CA private key

RANDFILE = $dir/private/.rand # random number file

 

default_days = 365 # how long to certify for

default_crl_days= 30 # how long before next CRL

default_md = md5 # message digest method to use

unique_subject = no # Set to 'no' to allow creation of

# several ctificates with same subject.

policy = policy_any # default policy

 

[ policy_any ]

countryName = optional

stateOrProvinceName = optional

localityName = optional

organizationName = optional

organizationalUnitName = optional

commonName = supplied

emailAddress = optional

 

########################################

```

制作自己的SSL证书

 

单向认证

```shell

mkdir -p "$HOME/testca/test/server"

cd "$HOME/testca/test/server"

```

### 创建服务器私钥,并生成testca的证书请求文件

通过req命令,生成一个签名证书申请,使用rsa:1024生成新秘钥,申请证书为testkey.pem,格式为PEM,证书签名参数为-subj指定的内容

```shell

openssl req -newkey rsa:1024 -out serverreq.pem -keyout serverkey.pem -keyform PEM -outform PEM -subj "/O=ABCom/OU=servers/CN=servername"

# req 表示发起一个证书签名请求

# -nwekey rsa:1024,新建一个1024 bit的rsa秘钥

# -out 输出的证书请求文件

# -keyout 表示存放生成私钥的文件

# -keyform 表示生成的秘钥文件格式,这里是PEM

# -outform 输出的格式,DER或者PEM

# -subj 设置或修改请求证书签名主题

```

执行命令过程中输入密钥保护密码,我们输入:949494

serverkey.pem为的私钥,serverreq.pem为CA签名证书请求文件。

查看请求文件内容

```shell

openssl req -in serverreq.pem -text -noout

```

### CA签发证书

```shell

openssl ca -in serverreq.pem -out servercert.pem -config "$HOME/testca/conf/testca.conf"

```

执行过程中需要输入CA私钥的保护密码,前面设置的123456。

查看证书内容

```shell

openssl x509 -in servercert.pem -text -noout

```Nginx配置

找到nginx运行的配置文件,将证书servercert.pem及私钥serverkey.pem放到配置目录下,修改内容如下

```json

http {

# 配置https服务

server {

# 开启443端口,ssl安全协议

listen 443 ssl;

server_name localhost;

# 配置证书及服务器私钥

ssl_certificate servercert.pem;

ssl_certificate_key serverkey.pem;

# 会话参数的缓存,所有工作进程之间共享的缓存

ssl_session_cache shared:SSL:1m;

ssl_session_timeout 5m;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

# 启用的密码

ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;

# SSLv3和TLS协议时,服务器密码优先于客户端密码

ssl_prefer_server_ciphers on;

location / {

root /data/www/;

index welcome.html;

}

}

}

```



Tags:SSL证书   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
Flex SSL证书是什么?它是众多SSL证书类型当中的一种,可根据需要自由搭配域名数量和域名类型,是一种比较新型的组合模式。Flex SSL证书怎么样呢?可以保护多少个域名? 与传统的SSL...【详细内容】
2021-06-16  Tags: SSL证书  点击:(129)  评论:(0)  加入收藏
网站的SSL证书过期了,是去年在StartSSL签发的,现在他们家的名声不太好,已经不推荐使用他们的证书了,网上转了一圈,开始申请阿里云的免费证书,是Symantec 免费DV , 然后三天了还在...【详细内容】
2021-04-08  Tags: SSL证书  点击:(221)  评论:(0)  加入收藏
分两部分来说:一、安装好SSL证书幸亏以前装过证书,就少走弯路,直奔Let's Encrypt。可是,智者千虑,必有一失。忽略了Vultr官方自带证书安装,耽误不必要的时间精力。具体参考 In...【详细内容】
2021-03-03  Tags: SSL证书  点击:(145)  评论:(0)  加入收藏
阿里云SSL免费证书2021更新,需要在云盾证书资源包处选择免费证书扩容包,资源包个数20,新手站长网来详细说下阿里云免费SSL证书从购买到申请全过程:阿里云免费SSL证书申请教程202...【详细内容】
2021-02-24  Tags: SSL证书  点击:(266)  评论:(0)  加入收藏
phpstudy配置ssl的方法:1.下载自己的SSL证书,进行解压。2.打开phpstudy,打开php扩展中的“php_openssl”功能。3.打开配置文件“httpd -conf”,将以下三行取消前面#注释符。 Loa...【详细内容】
2021-02-24  Tags: SSL证书  点击:(222)  评论:(0)  加入收藏
多域名SSL证书, 也称为Multi SAN SSL, 是指一张证书可以保护多个域名,这样在证书的管理和续费上都能带来很大的便利。在一个多域名证书中,要求域名所有者相同。数字证书的验证...【详细内容】
2021-01-29  Tags: SSL证书  点击:(197)  评论:(0)  加入收藏
随着信息化的普遍应用,企业网站、电商等对用户信息安全的重视,网站数据传输https加密的SSL证书的需求也在不断的重视,现在大部分网站都安装了SSL证书,网站建设者们常常会遇到这...【详细内容】
2021-01-29  Tags: SSL证书  点击:(210)  评论:(0)  加入收藏
关于申请SSL证书,在很多都可能认为只有域名才能申请SSL证书,其实IP也可以申请SSL证书进行Https加密传输的,以下是Certbase 对IP 数字证书的一些介绍: 一、IP申请SSL证书需要注意...【详细内容】
2021-01-25  Tags: SSL证书  点击:(260)  评论:(0)  加入收藏
多域名SSL证书, 也称为Multi SAN SSL, 是指一张证书可以保护多个域名,这样在证书的管理和续费上都能带来很大的便利。在一个多域名证书中,要求域名所有者相同。数字证书的验证...【详细内容】
2021-01-22  Tags: SSL证书  点击:(162)  评论:(0)  加入收藏
IP SSL证书解决企业要为IP地址实现HTTPS的功能。 对于在业务发展中,不能提供域名访问,只能是IP地址访问的企业,IP地址证书有效了解决其数据传输安全问题。 IP SSL证书的类型包...【详细内容】
2021-01-22  Tags: SSL证书  点击:(109)  评论:(0)  加入收藏
▌简易百科推荐
回答这个问题前首先要了解一度电的定义一度电= 1000W·h ,是一个能量单位,一个功率为1000w的设备持续运作一小时就会消耗1度电。所以台式机多少时间一度电完全取决于台...【详细内容】
2021-12-20  数码榜    Tags:台式电脑   点击:(5)  评论:(0)  加入收藏
你是不是很多时候都会紧急冲向电源插座以拯救笔记本电脑的电量?很多时候由于附近没有方便的插座,一是会误事,二是会导致尴尬。幸运的是,现代笔记本电脑比前辈高效得多。如今,即...【详细内容】
2021-12-16  趣玩公社    Tags:电池   点击:(17)  评论:(0)  加入收藏
电脑在我们生活中的重要性不言而喻。如何保证自己的电脑流畅好用,对于很多用户来说都非常重要。作为一个理科男和IT从业者,对于自己的电脑还是非常在意的,会定期的进行整理,保持...【详细内容】
2021-12-09  小伊评科技    Tags:电脑   点击:(13)  评论:(0)  加入收藏
大家好,我是良许。不管我们使用什么操作系统,无论是 Windows、macOS 还是 Linux ,里面都安装了许多软件、驱动程序和固件。但是,这三者概念有区别呢?我在朋友圈做了个小调查,发现...【详细内容】
2021-11-30  良许Linux    Tags:固件   点击:(10)  评论:(0)  加入收藏
澎湃问吧世界著名密码史学家戴维·卡恩曾说:“人类使用密码的历史几乎与使用文字的时间一样长”,这意味着人类密码领域的较量已近五千年。提及“密码”一词,大多数人会想...【详细内容】
2021-11-24    澎湃新闻  Tags:密码   点击:(16)  评论:(0)  加入收藏
由于去中心化域名和账户体系可以承载应用、网站和用户身份,因此有理由相信,这是 Web3 世界中不可或缺的一环。撰文:潘致雄如果回忆一下初次进行的加密货币转账时的体验,特别是在...【详细内容】
2021-11-03  链闻ChainNews    Tags:ENS   点击:(26)  评论:(0)  加入收藏
 文件系统(File System)是计算机系统必不可少的组成部分,可以说除了部分结构简单的单片机系统之外,文件系统是支撑每一个计算机系统运行的最重要的支撑,无论是操作系统、应用程...【详细内容】
2021-11-01  欧工玩转嵌入式  CSDN  Tags:FAT32   点击:(30)  评论:(0)  加入收藏
SDS 2.0时代进化达尔文的《进化论》认为,地球上现存的所有生物都是自然选择的结果,生物只有适应环境的变化,才能得到生存和进化。回望到企业存储,一个常做常新的行业,从上古结绳...【详细内容】
2021-10-28  ExponTech   企鹅号  Tags:SDS   点击:(35)  评论:(0)  加入收藏
在昨天的微信《远程办公危机四伏,到底该pick谁给你保驾护航?》中介绍了远程员工应该具备的四大安全工具,今天继续分享干货:05 双因子令牌在理想的情况下,每个人都会对所有的关键...【详细内容】
2021-10-26    计算机世界  Tags:远程办公   点击:(32)  评论:(0)  加入收藏
今天几乎所有的数字显示设备都基于某种类型的 RGB(红、绿、蓝)颜色模型。RGB 是表示人类可以看到的大多数颜色的最有效方式(有一些颜色不能很好地产生,但这是另一个讨论)。相机...【详细内容】
2021-10-09  懒懒散散的程序员    Tags:RGB   点击:(49)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条