openssl 自签证书(带ip或者域名)

1、查看证书内容

openssl x509 -text -noout -in mydomain.crt

2、创建自签根证书

openssl genrsa -out myCA.key
openssl req -new -x509 -days 3650 -key myCA.key -out myCA.crt

3、创建自签证书请求

请求时候没带x509v3

openssl genrsa -out mykey.key
openssl req -new -key mykey.key -out mycert.csr

4、根证书签发下级证书:

4.1、普通什么都没有,不带x509v3

openssl x509 -req -CA myCA.crt -CAkey myCA.key -CAcreateserial -days 3560 -in mycert.csr -out mycert.crt

4.2、绑定域名或者ip,带x509v3

x509v3信息 

用myca签发下级时候才带x509v3

vim v3.ext

[default]

# Extensions to add to a certificate request

#basicConstraints = CA:TRUE
#keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName=@alt_names

[alt_names]
#DNS.1 = flymote.com
#DNS.2 = *.flymote.com
#DNS.3 = www.flymot.com
#DNS.4 = *.flymot.com
IP.1 = 1.2.3.4
IP.2 = 5.6.7.8

通过自签根证书签发带域名或者ip的证书

openssl x509 -req -CA myCA.crt -CAkey myCA.key -CAcreateserial -days 3560 -in mycert.csr -out mycert-domain.crt -extfile v3.ext

5、转换为pkcs12(.p12)

摘自tomcat ssl配置文档:https://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html#Configuration

openssl pkcs12 -export -in mycert.crt -inkey mykey.key\
                        -out mycert.p12 -name tomcat -CAfile myCA.crt\
                        -caname root -chain

别人家一:

https://www.it610.com/article/1288242166862229504.htm

请求文件添加x509信息:

1、拷贝openssl.cnf ,添加 san 信息,openssl req 时候 -config openssl.cnf

2、根证书签发时候再带上 -config openssl.cnf -extensions v3_req。或者里面创建根证书时候带san

总觉得第二部特多余,所以我继续找。

 

别人家二:

https://vircloud.net/operations/sign-ip-crt.html

1、创建根证书后还要添加本地信任

2、创建key时候添加2048

3、创建请求时候没有san

4、配置文件用在根证书签发下级证书,带了证书功能。用-extfile 引入自己写的san配置文件,或者用默认位置openssl.cnf,通过-extensions 指定配置文件中的x509信息块

本地信任我觉得没用,2048多余,特抗拒修改默认配置文件,为什么和第一个参考不同,san配置文件用在下级签发,不是请求?

 

别人家三:

https://blog.csdn.net/qq_24601199/article/details/105535345

不吐2048,serial不知道有什么用,没说到x509 san的事

 

别人家四:

https://www.icode9.com/content-4-681600.html

1、事拷贝openssl.cnf

2、事没说到 basicConstraints = CA:FALSE -> TURE

3、请求和签发都用 -config -extensions 

 

 

看了好多好多。后来我打开 openssl.cnf

前几行就说到,在openssl x509 命令时候用 -extfile 添加 x509v3扩展信息

# To use this configuration file with the "-extfile" option of the
# "openssl x509" utility, name here the section containing the
# X.509v3 extensions to use:
# extensions        =
# (Alternatively, use a configuration file that has only
# X.509v3 extensions in its main [= default] section.)

但是这里 [= default] section 什么意思呢?反正我什么都不加,或者[default]都成功了。basicConstraints = CA:TRUE 都不用

 

 

把自签证书和自签根证书添加到Array后,激活ssl连接,提示证书链不完整?
警告:   cert chain is incomplete for sslv-203, please add interca or rootca

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Shell脚本中一键生成自签名证书来配置Nginx,可以使用OpenSSL工具来完成该任务。以下是一个大致的Shell脚本的示例代码: ```bash #!/bin/bash # 生成自签名证书的相关信息 COMMON_NAME="example.com" # 自己的域名IP地址 COUNTRY="CN" STATE="Beijing" CITY="Beijing" ORGANIZATION="My Organization" ORG_UNIT="IT" PASSWORD="mypassword" # 可选,为证书设置密码 # 生成私钥 openssl genrsa -des3 -out server.key -passout pass:$PASSWORD 2048 # 生成证书签名请求(CSR) openssl req -new -key server.key -out server.csr -passin pass:$PASSWORD -subj "/C=$COUNTRY/ST=$STATE/L=$CITY/O=$ORGANIZATION/OU=$ORG_UNIT/CN=$COMMON_NAME" # 生成自签名证书 openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt -passin pass:$PASSWORD # 配置Nginx使用自签名证书 cat > /etc/nginx/conf.d/example.conf <<EOF server { listen 443 ssl; server_name $COMMON_NAME; ssl_certificate /path/to/server.crt; ssl_certificate_key /path/to/server.key; # 其他Nginx配置 # ... } EOF # 重启Nginx服务 systemctl restart nginx ``` 上述脚本会生成`server.key`和`server.crt`两个文件作为自签名证书。其中,`server.key`是私钥文件,`server.crt`是证书文件。脚本还会将Nginx的配置文件`example.conf`写入到`/etc/nginx/conf.d/`目录下,从而配置Nginx使用生成证书。 请注意,在脚本中需要将`COMMON_NAME`变量设置为自己的域名IP地址,并根据需要修改其他的证书信息。同时,确保正确设置了Nginx的配置文件路径。 使用该脚本,通过执行`bash script.sh`命令,即可一键生成自签名证书并配置Nginx使用该证书

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值