openssl 如何生成自签证书

简介: openssl 如何生成自签证书

1. 创建 openssl 配置文件 openss.cnf

创建目录

mkdir certs
cd certs

  • 创建 openssl 配置文件 openss.cnf
[req_distinguished_name]
countryName = CN
countryName_default = CN
stateOrProvinceName = GuangDong
stateOrProvinceName_default = GuangDong
localityName = ShenZhen
localityName_default = ShenZhen
organizationUnitName = olive
organizationUnitName_default = olive
commonName = mynexus3.com
commonName_default = mynexus3.com
commonName_max = 64
[req]
req_extensions = v3_req
distinguished_name = req_distinguished_name
[v3_req]
basicConstraints = CA:FALSE
keyUsage = critical,digitalSignature,keyAgreement
subjectAltName = @alt_names
[alt_names]
DNS.1 = mynexus3.com
DNS.2 = *.mynexus3.com

解析

  • Country Name (2 letter code) [XX]:CN
  • State or Province Name (full name) []:省份拼音,比如 GuangDong
  • Locality Name (eg, city) [Default City]:地市拼音,比如 ShenZhen
  • Organization Name (eg, company) [Default Company Ltd]:公司名称拼音,比如 BaiDu
  • Organizational Unit Name (eg, section) []:你所在公司的部门拼音,比如 YanFa
  • Common Name (eg, your name or your server's hostname) []:域名或者ip,比如 192.168.12.10
  • Email Address []:邮箱地址,比如 xxxxx@sina.com

2. 生成证书私钥

openssl genrsa -out ca.key 2048

参数说明:

  • genras 使用 rsa 算法生成密钥
  • -des3 (可选)加密密钥,此时需要设置密码,后续使用该密钥时需要验证密码才能使用
  • -out 生成私钥文件

3. 生成证书请求文件(CSR)

CSR 是 Certificate Signing Request 的缩写,即证书签名请求,这不是证书,只是包含申请证书的基本信息。生成证书时要把这个提交给权威的证书颁发机构,颁发机构审核通过之后,再根据这些申请信息生成相应的证书。

openssl req -new -out ca.csr -key ca.key -config openssl.cnf

参数说明:

  • req 产生证书签发申请命令
  • -new 新的申请
  • -key 输入的 key 文件,即私钥
  • -out 输出为 CSR 文件,即证书请求文件

4. 生成证书

CRT 是 certificate 的缩写,即证书

openssl x509 -req -days 3650 -in ca.csr -signkey ca.key -out ca.crt -extensions v3_req -extfile openssl.cnf

X.509 是一种证书格式。对 X.509 证书来说,认证者总是CA或由CA指定的人,一份 X.509 证书是一些标准字段的集合,这些字段包含有关用户或设备及其相应公钥的信息。X.509 的证书文件,一般以.crt结尾,根据该文件的内容编码格式,可以分为以下二种格式:

  • PEM(Privacy Enhanced Mail),打开看文本格式,以"-----BEGIN…“开头,”-----END…"结尾,内容是 BASE64 编码。Apache 和 *NIX 服务器偏向于使用这种编码格式。
  • DER(Distinguished Encoding Rules),打开看是二进制格式,不可读。Java 和 Windows 服务器偏向于使用这种编码格式。
相关文章
|
JavaScript Java Maven
|
网络协议 IDE Linux
mongoose使用详细 -- 如何通过mongoose搭建服务器
mongoose使用详细 -- 如何通过mongoose搭建服务器
2839 0
|
Web App开发 前端开发 JavaScript
控制台出现报错DevTools failed to load source map: Could not load content for chrome-extension://的原因及解决方案
控制台出现报错DevTools failed to load source map: Could not load content for chrome-extension://的原因及解决方案
1151 0
控制台出现报错DevTools failed to load source map: Could not load content for chrome-extension://的原因及解决方案
|
存储 安全 测试技术
C# 中模拟HTTPS提交及模拟文件上传
【1月更文挑战第5天】昨天讲到用C#模拟POST还有GET进行数据提交,如果遇到的是https或者一些特殊信道的提交昨天的代码就会跑不通,今天就来说一下C#中https的提交以及模拟文件上传
|
3月前
|
Java Maven 数据安全/隐私保护
06-nexus私仓环境搭建
本文详细介绍Nexus Repository Manager OSS的安装与配置,涵盖JDK环境准备、服务部署、用户创建及启动操作。指导用户搭建Maven和Docker私有仓库,实现jar包与镜像的上传下载,并配置匿名访问与本地客户端信任。支持多种仓库类型,适用于企业级制品管理。
249 0
|
10月前
|
安全 算法 Ubuntu
Linux(openssl)环境:编程控制让证书自签的技巧。
总结:在Linux环境中,OpenSSL是一个非常实用的工具,可以帮助我们轻松地生成自签名证书。通过上述三个简单步骤,即可为内部网络、测试环境或开发环境创建自签名证书。但在公共访问场景下,建议购买经过权威认证机构签发的证书,以避免安全警告。
493 13
|
3月前
|
Linux 编译器 C++
Linux 麒麟系统安装 libstdc++-devel rpm 包步骤
本文介绍如何在Linux系统中手动安装`libstdc++-devel` RPM包。包含下载路径、终端操作、依赖处理及验证步骤,推荐使用`yum install`自动解决依赖,确保C++开发环境正常配置。
|
缓存 Linux 开发工具
CentOS 7- 配置阿里镜像源
阿里镜像官方地址http://mirrors.aliyun.com/ 1、点击官方提供的相应系统的帮助 :2、查看不同版本的系统操作: 下载源1、安装wget yum install -y wget2、下载CentOS 7的repo文件wget -O /etc/yum.
269480 0
|
人工智能 安全 Dubbo
Spring AI 智能体通过 MCP 集成本地文件数据
MCP 作为一款开放协议,直接规范了应用程序如何向 LLM 提供上下文。MCP 就像是面向 AI 应用程序的 USB-C 端口,正如 USB-C 提供了一种将设备连接到各种外围设备和配件的标准化方式一样,MCP 提供了一个将 AI 模型连接到不同数据源和工具的标准化方法。
7264 106
|
Kubernetes 应用服务中间件 nginx
搭建Kubernetes v1.31.1服务器集群,采用Calico网络技术
在阿里云服务器上部署k8s集群,一、3台k8s服务器,1个Master节点,2个工作节点,采用Calico网络技术。二、部署nginx服务到k8s集群,并验证nginx服务运行状态。
4403 3

热门文章

最新文章