美文网首页
【SSL】关于自签名类型

【SSL】关于自签名类型

作者: Bogon | 来源:发表于2021-11-02 00:13 被阅读0次

一、背景

要保证Web浏览器到服务器的安全连接,HTTPS几乎是唯一选择。

HTTPS其实就是HTTP over SSL,也就是让HTTP连接建立在SSL安全连接之上。

当由于某种原因(如:不想通过CA购买证书,或者仅是用于测试等情况),无法正常获取CA签发的证书。

这时可以生成一个自签名证书。使用这个自签名证书的时候,会在客户端浏览器报一个错误,签名证书授权未知或不可信(signing certificate authority is unknown and not trusted.)。

二、自签名分类

三、自签名和私有CA签名测试

自签名证书

# vim  self-signed.sh

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

#!/bin/bash

openssl req -x509 -nodes \

  -sha512  \

  -newkey rsa:2048 \

  -days 3650 \

  -subj "/C=CN/ST=Gunagdong/L=Shenzhen/O=Test/OU=Test/CN=www.example.com" \

  -keyout self-signed.key \

  -out    self-signed.crt

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

# sh  self-signed.sh 

# openssl x509 -noout -text -in self-signed.crt

自签名证书的Issuer和Subject是相同的。

私有CA签名证书

# vim ca-self-signed.sh

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

#!/bin/bash

openssl req -x509 \

  -nodes \

  -newkey rsa:4096 \

  -days 3650 \

  -sha256 \

  -subj "/C=CN/ST=Gunagdong/L=Shenzhen/O=CA/OU=CA/CN=www.ca.com" \

  -keyout ca.key \

  -out    ca.crt

openssl req \

  -nodes \

  -newkey rsa:4096 \

  -sha256 \

  -keyout harbor.key \

  -subj "/C=CN/ST=Gunagdong/L=Shenzhen/O=Test/OU=Test/CN=www.harbor.com" \

  -out harbor.csr

echo "

authorityKeyIdentifier=keyid,issuer

basicConstraints=CA:FALSE

keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment

subjectAltName=IP:192.168.1.105,DNS:www.harbor.com

" > extfile.cnf

openssl x509 -req \

  -days 3650 \

  -in harbor.csr \

  -CA ca.crt \

  -CAkey ca.key \

  -CAcreateserial \

  -extfile extfile.cnf \

  -out harbor.crt

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

# sh ca-self-signed.sh

# openssl x509 -noout -text -in harbor.crt

私有CA签名证书的Issuer和Subject是不同的。

四、数字证书(Certificate)

在HTTPS的传输过程中,有一个非常关键的角色–数字证书,那什么是数字证书?又有什么作用呢?

所谓数字证书,是一种用于电脑的身份识别机制。由数字证书颁发机构(CA)对使用私钥创建的签名请求文件做的签名(盖章),表示CA结构对证书持有者的认可。

数字证书拥有以下几个优点:

使用数字证书能够提高用户的可信度;

数字证书中的公钥,能够与服务端的私钥配对使用,实现数据传输过程中的加密和解密;

在证认使用者身份期间,使用者的敏感个人数据并不会被传输至证书持有者的网络系统上;


五、证书信息查看

查看私钥信息

# opensslrsa-noout -text -in server.key

查看签名请求信息

# opensslreq-noout -text -in server.csr

查看ca的私钥信息

# opensslrsa-noout -text -in ca.key

查看证书信息

opensslx509-noout -text -in ca.crt

查看一个证书吊销列表信息

# opensslcrl-text -in   xx.crl

查看一个证书的额外信息

# opensslx509-purpose -in  cacert.pem

从一个私钥里面提取出公钥

# openssl rsa -in key.pem-pubout-out  pubkey.pem

从生成的证书文件中提取出公钥文件

# openssl x509-outform PEM-in self-signed.crt -pubkey -noout > self-signed.pub

查看一个公钥的信息

openssl rsa -noout -text -pubin -in apache.pub 

验证一个证书是否是某一个CA签发

# openssl verify  -CAfile  /path/to/ca.crt   apache.crt  

模拟一个ssl客户端访问ssl服务器

# openssl s_client -connect 192.168.1.105:8443 < /dev/null

如果服务端要求客户端提供证书  则在加上 -cert 和-key参数 比如 :

# openssl s_client -connect 192.168.1.105:8443  -cert  /path/to/client.crt  -key /path/to/client.key 

六、参考

Rancher 自签名ssl证书

https://www.rancher.cn/docs/rancher/v2.x/cn/install-prepare/self-signed-ssl

自签名证书和私有CA签名的证书的区别

https://blog.csdn.net/sdcxyz/article/details/47220129

使用OpenSSL生成自签名证书

https://www.lotlab.org/2018/03/28/%E4%BD%BF%E7%94%A8openssl%E7%94%9F%E6%88%90%E8%87%AA%E7%AD%BE%E5%90%8D%E8%AF%81%E4%B9%A6

关于base64编码

https://blog.csdn.net/weixin_39460408/article/details/81835337

https://blog.csdn.net/qq_20553613/article/details/95756154

https://blog.csdn.net/wo541075754/article/details/81734770

相关文章

  • 【SSL】关于自签名类型

    一、背景 要保证Web浏览器到服务器的安全连接,HTTPS几乎是唯一选择。 HTTPS其实就是HTTP over ...

  • 【转】给Nginx配置一个自签名的SSL证书

    给Nginx配置一个自签名的SSL证书[图片上传中。。。(1)]给Nginx配置一个自签名的SSL证书[图片上传中...

  • git clone 自签名https 报错

    git clone 自签名https,报错——SSL certificate problem: self sign...

  • Android 使用自签名证书

    Android SSL可以使用CA证书也可以使用自签名证书,自签名证书是通过keystore生成的,本文介绍and...

  • 生成自签名SSL证书

    下载执行文件 本文操作平台windows,安装 TortoiseGit后,在其 git bash中执行 opens...

  • grpc ssl 自签名证书

    起因 问题1 这个是因为grpc 长时间没有链接,重启就可以了 问题2 普通的自签名证书在 golang 1.15...

  • 创建自签名 SSL 证书

    概述 利用 OpenSSL 生成根证书(RootCA),并通过根证书签发新证书。 步骤 环境准备 OS: Cent...

  • 【Mac上配置https】

    先在桌面创建个SSL文件夹,用来放生成的私钥证书文件打开终端cd到SSL文件夹 自签名证书 (1) 在SSL文件夹...

  • ❖ 自签名 SSL 证书(self-signed SSL cer

    自签名的SSL证书制作极其简单,几句openssl命令即可生成一个密钥和证书。但是:自签名证书在网络上是不可信的,...

  • Netty增加SSL层

    tls是最新的ssl, 一般说的ssl就是tls 生成自签名文件 centos7下生成 1. 安装openssl ...

网友评论

      本文标题:【SSL】关于自签名类型

      本文链接:https://www.haomeiwen.com/subject/uzrtzltx.html