admin管理员组

文章数量:1794759

OpenSSL

OpenSSL

个人名片:
对人间的热爱与歌颂,可抵岁月冗长🌞
Github👨🏻‍💻:念舒_C.ying
CSDN主页✏️:念舒_C.ying
个人博客🌏 :念舒_C.ying

一、安装

需要安装并配置OpenSSL工具。

yum install openssl

二、创建自签名证书

2.1 基于域名

  • 创建私钥
openssl genrsa -out nianshu.com.key 2048
  • 创建证书签名请求(CSR)
openssl req -new -key nianshu.com.key -out draw.by.gs.csr
  • 创建自签名证书
openssl x509 -req -days 3650 -in nianshu.com.csr -signkey nianshu.com.key -out nianshu.com.crt

在执行此命令时,您可以使用-days选项来指定证书的有效期。在上述示例中,证书的有效期为10年(3650天)。如果您想要更长期的有效期,可以将该值增加。

  • 证书格式转换

使用以下命令将证书格式转换为PEM格式:

openssl x509 -in nianshu.com.crt -out nianshu.com.pem -outform PEM

现在,您已经成功创建了域名的自签名证书,并将其保存为PEM格式的文件。请注意,自签名证书不被公共信任,因此它们只适用于内部使用或开发目的。如果您要将您的网站公开发布,建议您购买由受信任的第三方证书颁发机构(CA)颁发的证书。

  • 脚本创建自签名证书
#!/bin/bash# 设置变量
DOMAIN="draw.by.gs"  #域名
CERT_DIR="/certs"  #目录
COUNTRY="CN"  #国家
STATE="GANSU"  #省/州
CITY="LANZHOU"  #城市
ORG_NAME=""  #组织
EMAIL="admin@nianshu.com"  #邮箱
KEY_SIZE="2048"
DAYS="365"  #有效期# 生成私钥
openssl genrsa -out $CERT_DIR/$DOMAIN.key $KEY_SIZE# 生成证书签名请求(CSR)
openssl req -new -key $CERT_DIR/$DOMAIN.key -out $CERT_DIR/$DOMAIN.csr -subj "/C=$COUNTRY/ST=$STATE/L=$CITY/O=$ORG_NAME/CN=$DOMAIN/emailAddress=$EMAIL"# 生成自签名证书
openssl x509 -req -days $DAYS -in $CERT_DIR/$DOMAIN.csr -signkey $CERT_DIR/$DOMAIN.key -out $CERT_DIR/$DOMAIN.crt# 删除证书请求文件
rm draw.by.gs.csr# 输出证书内容
echo "--------------------------"
echo "生成的证书文件:"
ls -al $DOMAIN.*
echo ""
echo "证书内容:"
openssl x509 -in $DOMAIN.crt -noout -text

脚本中首先设置了一些变量,这些变量包括要生成证书的域名、证书存储目录、组织方信息等等。接着,通过openssl工具生成证书所需的私钥、证书签名请求以及自签名证书,最终将证书存储在指定的目录下。注意,生成完证书后,需要将证书请求文件删除,因为它不再需要。

  • 使用该脚本需事先安装openssl,可使用以下命令安装:
yum install openssl

2.2 基于IP

  • 创建一个名为 openssl.cnf 的文件:
[req]
distinguished_name = req_distinguished_name
req_extensions = v3_req
prompt = no[req_distinguished_name]
C = CN
ST = Some-State
L = Some-City
O = Some-Company
OU = Some-Organization
CN = example.com[v3_req]
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names[alt_names]
IP.1 = 192.168.0.12

此配置文件包含有关证书的信息。使用示例信息并将其替换为您的数据。特别是,您需要修改 C, ST, L, O, OU, 和 CN 的值。此外,您还可以看到 subjectAltName 部分需要修改,确保 IP.1 下的IP地址正确。

  • 使用以下命令生成密钥和证书:
openssl req -new -newkey rsa:4096 -nodes -keyout domain.key -config openssl.cnf -x509 -sha256 -days 365 -out domain.crt

这将生成一个名为 domain.key 的RSA密钥文件和一个名为 domain.crt 的证书文件,包含配置文件中的数据和有效。

  • 合并证书
cat domain.crt domain.key > ./ssl.pem

期待下次的分享,别忘了三连支持博主呀~
我是 念舒_C.ying ,期待你的关注~💪💪💪

本文标签: openssl