文档章节

用openssl为WEB服务器生成证书(自签名CA证书,服务器证书)

o
 osc_w9s1w4o0
发布于 2019/03/30 18:42
字数 966
阅读 18
收藏 0

精选30+云产品,助力企业轻松上云!>>>

用openssl为WEB服务器生成证书(自签名CA证书,服务器证书)

来源: https://www.cnblogs.com/osnosn/p/10608455.html 来自osnosn的博客
写于: 2019-03-28.

以下内容是用自签名证书,为网站生成服务器证书。
照着这一篇**"用openssl为EAP-TLS生成证书(CA证书,服务器证书,用户证书)"**,建立所有文件。
脚本可以生成RSA, ECC证书。运行时带参数指定类型。

其中openssl.cnf 按以下新增几行。用于匹配你的服务器域名,或者是IP。
openssl.cnf

#openssl.cnf
[ ca ]
default_ca = hostapd

[ hostapd ]
dir = .
serial = $dir/2db/0serial
database = $dir/2db/2indexdb.txt
new_certs_dir = $dir/3certs_new
certificate = $dir/ca_cert.pem
private_key = $dir/ca_key.pem
RANDFILE = $dir/2db/.random_state

default_bits = 4096
default_days = 36500
default_crl_days = 36500
default_md = sha512
#unique_subject = no

policy = policy_anything

[ policy_anything ]
countryName = optional
stateOrProvinceName = optional
localityName = optional
organizationName = supplied
organizationalUnitName = optional
commonName = supplied
emailAddress = optional

[ req ]
distinguished_name = req_distinguished_name
string_mask = utf8only
[ req_distinguished_name ]

[ v3_ca ]
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer
basicConstraints = critical,CA:true
certificatePolicies=ia5org,@pl_section
[ server_cert ]
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer
basicConstraints = CA:false
extendedKeyUsage = serverAuth,msSGC,nsSGC
certificatePolicies=ia5org,@pl_section
subjectAltName = @dns_names    <---新增
[ dns_names ]             <---新增
DNS.1 = my.domain.com    <---新增
DNS.2 = your.domain.net    <---新增
IP.1 = 1.2.3.4              <---新增
IP.2 = 5.6.7.8              <---新增
[ user_cert ]
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer
basicConstraints = CA:false
#subjectAltName = email:copy
extendedKeyUsage = clientAuth,emailProtection,timeStamping
certificatePolicies=ia5org,@pl_section

[ pl_section ]
policyIdentifier = "X509v3 Any Policy"
# 颁发者说明的链接. windows中,要导入信任之后才生效.
CPS.1 = https://your.web.com/cps/readme.html
userNotice.1=@pl_notice
[ pl_notice ]
# 颁发者说明,Issuer statment. 不支持utf8中文,因为ia5org。
explicitText="Read deail at https://your.web.com/xxx.html"

userNotice.1 的文字说明,只能是英文,中文会乱码。 文字说明,无论此证书是否被系统信任,查看证书时都会出现在"颁发者说明"中(Issuer Statement)。
CPS.1 的链接。系统未信任此证书时,是不显示的。信任后,才会出现在"颁发者说明"中(Issuer Statement)。
CPS.1= 可以是 "http://" 也可以是 "https://"。 <a target="_blank" href="https://img2018.cnblogs.com/blog/1641467/201903/1641467-20190327185550806-642574752.png"><img src="https://img2018.cnblogs.com/blog/1641467/201903/1641467-20190327185550806-642574752.png" style="height:100px;border:1px solid #000" /></a> <a target="_blank" href="https://img2018.cnblogs.com/blog/1641467/201903/1641467-20190327185645849-2106772837.png"><img src="https://img2018.cnblogs.com/blog/1641467/201903/1641467-20190327185645849-2106772837.png" style="height:100px;border:1px solid #000" /></a> <a target="_blank" href="https://img2018.cnblogs.com/blog/1641467/201903/1641467-20190327185707372-591865997.png"><img src="https://img2018.cnblogs.com/blog/1641467/201903/1641467-20190327185707372-591865997.png" style="height:100px;border:1px solid #000" /></a>

只有一个域名,就只写 DNS.1=,其他的不要了。 有多个域名,配置中就写 DNS.1= , DNS.2= , DNS.3= ... DNS.9= 可以写通配符域名,DNS.1=*.mydom.org
将匹配所有以 .mydom.org 的所有域名。如: abc.mydom.org , www.mydom.org ...
不匹配 mydom.org 所以通配符域名一般写两行 DNS.1=mydom.org , DNS.2=*.mydom.org

使用方法,只使用这几个命令:

./clear_all_cert.sh 清除所有证书。 modify C/ST/L/O/CN in new-ca.sh,new-server.sh,newuser.sh, 可以使用中文。 modify openssl.cnf:  CPS.1=  explicitText=  [ dns_names ]   DNS.1=   DNS.2= new-ca.sh 创建自签名root证书。 new-server.sh 创建web用的服务器证书。

这三个文件,就是用于配置web服务器需要的证书。 ca_cert.pem , server_cert.pem , server_key.pem

如需要,参考以下证书格式转换的指令:

查看/打印 pem 证书 openssl x509 -in ca_cert.pem -text -noout openssl x509 -in server_cert.pem -text -noout 把 pem 转为 der 格式,(证书,密钥)
openssl x509 -outform der -in server_cert.pem -out server.cer 服务器证书。 openssl rsa -in server_key.pem -outform der -out server_key.cer 服务器密钥。 把 pem 转为 P12 格式(pfx),(证书,密钥),友好名称不支持utf8中文。 openssl pkcs12 -export -out server.p12 -inkey server_key.pem -in server_cert.pem -certfile ca_cert.pem -caname"ca friendly name" -name "friendly name" 把 p12 转 jks, 用java的 keytool 工具转换/导入 把 pem 转 pkcs#7 格式,(证书) openssl crl2pkcs7 -nocrl -certfile server_cert.pem -out server.p7b

不想用自签名证书,那去网上申请一个免费服务器证书吧: 去freessl.org申请免费ssl服务器证书

转载请注明来源。
来源: https://www.cnblogs.com/osnosn/p/10608455.html 来自osnosn的博客 --------- end ---------

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
linux下https的实现

部署HTTPS 本章网络规划构建私有证书颁发机构(CA)的主机是ca.example.com,其IP地址及子网掩码前缀长度是192.168.1.40/24,网关地址是192.168.1.1,DNS1地址是192.168.1.10。 web服务器主机...

vipzhongxiaofei
2019/10/14
0
0
搭建私有CA

一、实验目的 搭建私有CA并使其可以实现公司内部的的签名服务。 二、实验环境: 系统架构:Centos7(服务器)、Centos6(需要申请证书的服务器) 需要的软件包:openssl、openssl-libs、lib...

osc_1h9xhkow
2018/02/28
2
0
搭建一个简易的https

构建一个简易的https需要三个服务器来做实验: CA:centos7 web服务器:centos6 客户端 一、配置CA(centos7) 1、在/etc/pki/CA/下面创建两个文件 echo 00 > /etc/pki/CA/serial(生成序列号...

止于盛夏
2017/10/22
0
0
关于SSL证书生成解决方案

SSL是Netscape公司率先采用的网络安全协议。它是在传输通信协议(TCP/IP)上实现的一种安全协议,采用公开密钥技术。SSL广泛支持各种类型的网络,同时提供三种基本的安全服务,它们都使用公开密...

HANDAND
2019/03/25
4
0
CA认证和证书

获取证书的两种方法: 使用证书授权机构 生成签名请求(csr) 将csr发送给CA 从CA处接收签名 自签名证书 自己签发自己的公钥 自建CA颁发机构和自签名 实验用两台机器,一台做CA颁发证书,一台...

ZMelissa
2018/06/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

如果你失明了,你怎么编程? - How can you program if you're blind?

问题: Sight is one of the senses most programmers take for granted. 视觉是大多数程序员认为理所当然的感官之一。 Most programmers would spend hours looking at a computer monitor......

技术盛宴
今天
16
0
如何删除使用Python的easy_install安装的软件包? - How do I remove packages installed with Python's easy_install?

问题: Python's easy_install makes installing new packages extremely convenient. Python的easy_install使安装新包非常方便。 However, as far as I can tell, it doesn't implement th......

fyin1314
今天
11
0
如何将逗号分隔的字符串转换为数组? - How to convert a comma separated string to an array?

问题: I have a comma separated string that I want to convert into an array, so I can loop through it. 我有一个逗号分隔的字符串,我想将其转换成数组,因此可以循环遍历它。 Is the...

富含淀粉
今天
13
0
深源恒际:担心个人身份被冒用?不存在!

本文作者:c****t 近日,苟晶被冒名顶替身份参加高考的事件在社会各界掀起广泛热议。事件调查结果公布后,舆论风向逆转,吃瓜群众认为当事人夸大其词消费了公众情绪,一边对当事人所遭遇的不...

百度开发者中心
昨天
5
0
CKEditor 5 + SpringBoot实战(三):SpringData JPA数据持久化

在本系列的文章中,我将介绍如何在Spring Boot Application中使用CKEditor编辑器。介绍的内容包括基本环境的搭建,文件上传,SpringData JPA数据持久化,CKEditor5的安装,CKEditor图片上传,...

树下魅狐
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部