openssl生成自签证书各项含义

openssl req 证书请求和证书生成命令

-new 此选项生成新的证书请求。它将提示用户输入相关字段值。提示的实际字段及其最大和最小大小在配置文件和任何请求的扩展中指定。如果未给出-key选项,它将使用配置文件中指定的信息或通过-newkey和-pkeyopt选项给出的信息生成新的私钥,否则默认情况下为 2048 位长度的 RSA 密钥。


-newkey rsa:2048  除非给出-key, 否则此选项用于生成新的私钥。随后使用它,就像使用-key选项给出的一样。此选项意味着使用-new标志来创建新的证书请求或在给出 -x509 的情况下创建新的证书。


-noenc  如果指定此选项,那么即使创建私钥,也不会对其进行加密。


-nodes  自 OpenSSL 3.0 起,此选项已弃用;使用-noenc代替。  


-subj "/C=CN/ST=Beijing/L=Beijing/O=Super Inc./OU=Web Security/CN=$IP"

-x509 此选项输出证书而不是证书请求。 这通常用于生成测试证书。

 
-keyout 这给出了用于写入新创建的或从-key读取的任何私钥的文件名。如果-keyout选项和-key选项均未给出,则使用配置文件中通过default_keyfile选项指定的文件名(如果存在)。因此,如果您想写入私钥并且提供了-key选项,则应显式提供-keyout选项。如果生成新密钥并且未指定文件名,则该密钥将写入标准输出。


-out $IP.csr 

openssl x509 证书显示和签名命令
-req 
-days 365 
-in $IP.csr 
-signkey $IP.key 
-out $IP.crt 
-extfile http.ext

/docs/man3.0/man1/index.html

创建私钥,然后从中生成证书请求:
openssl genrsa -out key.pem 2048
openssl req -new -key key.pem -out req.pem
相同但只是使用 req:
openssl req -newkey rsa:2048 -keyout key.pem -out req.pem

#!/bin/bash


#输入证书使用IP地址
IP=$1

rm $IP.csr $IP.key $IP.crt -f

rm http.ext

cat >> http.ext  <<EOF
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth, clientAuth
subjectAltName=@SubjectAlternativeName

[ SubjectAlternativeName ]
IP.1=127.0.0.1
IP.2=$IP
EOF

openssl req -new -newkey rsa:2048 -noenc -out $IP.csr -keyout $IP.key -subj "/C=CN/ST=Beijing/L=Beijing/O=Super Inc./OU=Web Security/CN=$IP"

openssl x509 -req -days 36500 -in $IP.csr -signkey $IP.key -out $IP.crt -extfile http.ext

生成后,电脑安装 *.crt证书

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

openssl相关


cp /owncrt/crtificate.key "${crtIFICATES_LIVE_FOLDER:?}/${DOMAIN_OR_PUBLIC_IP}/privkey.pem"
cp /owncrt/crtificate.crt "${crtIFICATES_LIVE_FOLDER:?}/${DOMAIN_OR_PUBLIC_IP}/fullchain.pem"

# SSL Config
ssl_crtificate         conf.d/live/fullchain.pem;
ssl_crtificate_key     conf.d/live/privkey.pem;
ssl_trusted_crtificate conf.d/live/fullchain.pem;

  openssl req -new -nodes -x509 \
    -subj "/CN=${DOMAIN_OR_PUBLIC_IP}" -days 365 \
    -keyout "xxx-crt/privkey.pem" \
    -out "xxx-crt/fullchain.pem" \
    -extensions v3_ca

openssl req -new -newkey rsa:2048 
-nodes 
-keyout my.key 
-out my.csr 
-subj "/C=CN/ST=shanghai/L=shanghai/O=example/OU=it/CN=domain1/CN=domain2"


---------------------------------------
1、CA根证书的生成步骤
制作 ca.key 私钥                          ca.key
openssl genrsa -aes256 -out ca.key 2048

请求证书                                  ca.csr
openssl req -new -sha256 -key ca.key -out ca.csr -subj "/C=CN/ST=SD/L=JN/O=QDZY/OU=www.test.com/CN=CA/emailAddress=admin@test.com"

自签证书                                  ca.cer
openssl x509 -req -days 36500 -sha256 -extensions v3_req -extensions v3_ca -signkey ca.key -in ca.csr -out ca.cer


2、生成服务端证书
创建服务器私钥                            server.key
openssl genrsa -aes256 -out server.key 2048

生成证书请求                              server.csr
openssl req -new -sha256 -key server.key -out server.csr -subj "/C=CN/ST=SD/L=JN/O=QDZY/OU=www.test.com/CN=SERVER/emailAddress=admin@test.com"

使用CA证书签署服务器证书                   server.cer
openssl x509 -req -days 36500 -sha256 -extensions v3_req  -CA  ca.cer -CAkey ca.key  -CAserial ca.srl  -CAcreateserial -in server.csr -out server.cer


3、生成客户端证书
生成客户端私钥                            client.key
openssl genrsa -aes256 -out client.key 2048

申请证书                                 client.csr
openssl req -new -sha256 -key client.key  -out client.csr -subj "/C=CN/ST=SD/L=JN/O=QDZY/OU=www.test.com/CN=CLIENT/emailAddress=admin@test.com"

使用CA证书签署客户端证书                  client.cer
openssl x509 -req -days 36500 -sha256 -extensions v3_req  -CA  ca.cer -CAkey ca.key  -CAserial ca.srl  -CAcreateserial -in client.csr -out client.cer

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


# 生成根证书私钥                     ca.key
openssl genrsa -out ca.key 4096

# 签发根证书,有效期100年            ca.crt
openssl req -new -x509 -key ca.key -out ca.crt -days 36500


# 生成网站私钥                      private.key
openssl genrsa -out private.key 4096

# 使用网站私钥生成证书请求文件       private.csr
openssl req -new -out private.csr -key private.key -config ssl.conf 

# 签发证书,有效期100年             private.crt
openssl x509 -req -days 36500 -in private.csr  -out private.crt  -CA ca.crt -CAkey ca.key  -extfile ssl.conf  -extensions req_ext  -CAcreateserial


配置https双向认证时其中
CA.cer是用来安装在浏览器、安卓和苹果设备上的根CA信任证书
server.cer和server.key以及CA.cer是放在服务端的证书和key文件以及CA证书,在Nginx中配置即可。


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

openssl genrsa -out my.key 2048
openssl req -new -key my.key -out my.csr -subj "/C=CN/ST=shanghai/L=shanghai/O=example/OU=it/CN=domain1/CN=domain2"

openssl req -new -newkey rsa:2048 -nodes -keyout my.key -out my.csr -subj "/C=CN/ST=shanghai/L=shanghai/O=example/OU=it/CN=domain1/CN=domain2"

------------------------
测试

# 生成根证书私钥                     ca.key
openssl genrsa -out ca.key

# 签发根证书,有效期100年            ca.crt
openssl req -new -x509 -key ca.key -out ca.crt -days 36500 -subj "/CN=CASHWAY"


# 生成网站私钥                      private.key
openssl genrsa -out private.key

# 使用网站私钥生成证书请求文件       private.csr
openssl req -new -out private.csr -key private.key -config ssl.conf 

# 签发证书,有效期100年             private.crt
openssl x509 -req -days 36500 -in private.csr  -out private.crt  -CA ca.crt -CAkey ca.key  -extfile ssl.conf  -extensions req_ext  -CAcreateserial

openssl x509 -req -days 36500 -in private.csr  -out private.crt  -CA ca.crt -CAkey ca.key  -extensions req_ext  -CAcreateserial

  • 13
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值