1、安装openSSL

weget http://www.openssl.org/source/openssl-1.0.0a.tar.gz Tar -zxvf openssl-1.0.0a.tar.gz

(1)进入openssl-1.0.0a目录通过编译方式安装openssl

./config -prefix=/www/server/openssl#设置openssl安装路径

2、生成自签证书(CA)

(推荐在nginx下创建ssl目录)

(1)生成私钥

openssl genpkey -algorithm RSA -out root_private_key.pem -pkeyopt rsa_keygen_bits:4096

(注*

centos8 秘钥长度低于2048位会报错)

(2)建立证书crs和自签证书

创建根证书的CSR

openssl req -new -key root_private_key.pem -out root_csr.pem -subj "/C=US/ST=California/L=San Francisco/O=My Root CA/CN=My Root CA"

(注*

My Root CA应替换为自签证书绑定的IP或域名,国家和地区自拟定)

(3)设置openssl服务内容

openssl x509 -req -days 3650 -in root_csr.pem -signkey root_private_key.pem -out root_certificate.pem -extensions v3_ca

(注*

x509: 这是用于处理 X.509 证书的子命令。

-days 3650: 指定证书的有效期,这里是 3650 天,相当于 10 年。

-in root_csr.pem: 指定输入文件,这里是证书签名请求文件,文件名为 root_csr.pem。

-signkey root_private_key.pem: 指定用于签名的私钥文件,这里是 root_private_key.pem,这个私钥应该与 CSR 相匹配。

-out root_certificate.pem: 指定输出文件,这里是生成的根证书文件,文件名为 root_certificate.pem。

-extensions v3_ca: 指定证书的扩展)

[v3_ca范例]

[v3_ca]

basicConstraints = CA:TRUE

keyUsage = keyCertSign, cRLSign

(注*

basicConstraints = CA:TRUE: 这是一个基本约束扩展,CA:TRUE 表示这个证书是一个 CA 证书,也就是说它可以用于签署其他证书。basicConstraints 是一个非常重要的扩展,它告诉验证者这个证书是否可以作为 CA 使用。

keyUsage = keyCertSign, cRLSign: 这是密钥用途扩展,它定义了证书持有者的公钥可以执行哪些操作。这里指定了两个用途:

keyCertSign: 表示公钥可以用于签署证书。

cRLSign: 表示公钥可以用于签署证书吊销列表(Certificate Revocation List,简称 CRL)。CRL 是一种用于列出被吊销的证书的列表,以确保这些证书不再被信任。)

(4)建立服务器私钥

openssl genpkey -algorithm RSA -out server_private_key.pem -pkeyopt rsa_keygen_bits:2048

(5)建立服务器证书的 crs

openssl req -new -key server_private_key.pem -out server_csr.pem -subj "/C=US/ST=California/L=San Francisco/O=My Company/CN=你的IP或域名"

(注*

CN=应替换为自签证书绑定的IP或域名,国家、地区和公司自拟定)

(6)在ssl目录下新建 openssl.cnf配置文件

其内容为

[v3_req]

keyUsage = digitalSignature, keyEncipherment

extendedKeyUsage = serverAuth

subjectAltName = @alt_names

服务器使用的域名和服务器IP

[alt_names]

DNS.1 = yourname.com

DNS.2 = www.yourname.com

DNS.2 = *.yourname.com(泛域名)

IP.1 = 100.70.***.***

(注*

*.yourname.com为泛域名

IP.1需填写你的nginx服务器地址)

(7)保存生成的服务器证书

openssl x509 -req -in server_csr.pem -CA root_certificate.pem -CAkey root_private_key.pem -CAcreateserial -out server_certificate.pem -days 3650 -extensions v3_req -extfile openssl.cnf

(注*

x509: 用于处理 X.509 证书的子命令。

-req: 表示输入文件是一个证书签名请求(CSR,Certificate Signing Request)。

-in server_csr.pem: 指定输入文件,这里是服务器的证书签名请求文件,文件名为 server_csr.pem。

-CA root_certificate.pem: 指定用于签名的 CA(证书颁发机构)证书,这里是 root_certificate.pem。这表明服务器证书将由这个根证书颁发。

-CAkey root_private_key.pem: 指定 CA 的私钥文件,这里是 root_private_key.pem。这个私钥用于签署服务器证书。

-CAcreateserial: 这个选项指示 OpenSSL 创建一个新的序列号文件,通常用于记录已颁发的证书的序列号。这有助于管理证书的吊销和验证。

-out server_certificate.pem: 指定输出文件,这里是生成的服务器证书文件,文件名为 server_certificate.pem。

-days 3650: 指定证书的有效期,这里是 3650 天,相当于 10 年。

-extensions v3_req: 指定证书扩展的名称,这里使用 v3_req。这通常在配置文件中定义,用于设置证书的扩展属性,如密钥用途、基本约束等。

-extfile openssl.cnf: 指定配置文件,这里是 openssl.cnf。这个文件包含了证书扩展和其他证书属性的详细配置。)

(8)验证证书

验证根证书

openssl x509 -in root_certificate.pem -text -noout

验证服务器证书

penssl x509 -in server_certificate.pem -text -noout

2、Nginx服务配置实例

点击查看代码
worker_processes  1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
#gzip on;
# HTTP server
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
# HTTPS server
server {
listen 443 ssl;
server_name 100.70.84.6 feng.com www.feng.com;
#生成的ssl证书
ssl_certificate /nginx/ssl/server_certificate.pem;
#证书秘钥
ssl_certificate_key /nginx/ssl/server_private_key.pem;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
#proxy_pass http://100.70.84.6:20157;
root html;
index index.html index.htm;
}
}
}

PS  如果出现pod2man错误,删除即可

删除pod2man

ll /usr/bin/pod2man

rm -f /usr/bin/pod2man

make && make install

本文为Ke_Xin_JSY 编写 转发请标注

自签openssl证书(包含泛域名)的更多相关文章

  1. acme.sh建立SAN证书 和泛域名证书

    文件来源 https://github.com/Neilpang/acme.sh/wiki/How-to-issue-a-cert domain=$domain time=`date +%Y%m%d% ...

  2. 在Linux下如何根据域名自签发OpenSSL证书与常用证书转换

    在Linux下如何根据域名自签发各种SSL证书,这里我们以Apache.Tomcat.Nginx为例. openssl自签发泛域名(通配符)证书 首先要有openssl工具,如果没有那么使用如下命令安 ...

  3. CentOS 7配置Let’s Encrypt支持免费泛域名证书

    Let’s Encrypt从2018年开始支持泛域名证书,有效期3个月,目前仅支持acme方式申请,暂不支持certbot. 1.安装acme.sh curl https://get.acme.sh ...

  4. lets encrypt 申请nginx 泛域名

    1. 安装certbot工具 wget https://dl.eff.org/certbot-auto chmod a+x ./certbot-auto 2. 申请通配符域名 ./certbot-au ...

  5. 申请 Let’s Encrypt 泛域名证书 及 Nginx/Apache 证书配置

    什么是 Let’s Encrypt? 部署 HTTPS 网站的时候需要证书,证书由 CA (Certificate Authority )机构签发,大部分传统 CA 机构签发证书是需要收费的,这不利于 ...

  6. 新开源HTML5单文件网页版ACME客户端,可在线申请Let's Encrypt、ZeroSSL免费HTTPS多域名通配符泛域名SSL/TLS证书(RSA/ECC/ECDSA)

    目录 开源项目的起源 项目地址 使用方法 第一步:选择Let's Encrypt.ZeroSSL或其他证书颁发机构 第二步:证书配置,填写域名 第三步:完成域名所有权的验证 第四步:下载保存证书PEM ...

  7. 使用 certbot 申请泛域名https证书

    使用 certbot 申请泛域名https证书 Intro Certbot 是一个基于 Let's Encrypt 的自动化申请证书的工具,支持的系统和web server也很多,详见 Certbot ...

  8. 使用 acme.sh 签发续签 Let‘s Encrypt 证书 泛域名证书

    1. 安装 acme.sh 安装很简单, 一个命令: curl https://get.acme.sh | sh 并创建 一个 bash 的 alias, 方便你的使用 alias acme.sh=~ ...

  9. Let'sEncrypt 免费通配符/泛域名SSL证书添加使用教程

    Let'sEncrypt 免费通配符/泛域名SSL证书添加使用教程 通配符证书一般还是比较贵的一般最便宜的通配符证书5.60美元一年,只不过Let'sEncrypt的有效期是3个月,对于一般用户来说基 ...

  10. Let's Encrypt免费泛域名证书申请

    一. 下载acme.sh,以下四条命令任选一条即可 curl https://get.acme.sh | shwget -O - https://get.acme.sh | sh curl https ...

随机推荐

  1. 【Spring-Security】Re07 持久化的记住我

    Security记住我功能底层实现依赖于SpringJDBC组件,如果有持久层框架的话,就由持久层框架实现 演示案例的选型,MysqlJdbc + MybatisStarter <depende ...

  2. 使用 abortNavigation 阻止导航

    title: 使用 abortNavigation 阻止导航 date: 2024/8/3 updated: 2024/8/3 author: cmdragon excerpt: 摘要:在Nuxt3中 ...

  3. AI4Science 再填新成员:谷歌推出天气模型MetNet-3 已落地相关产品、谷歌天气预报模型GraphCast登刊Science —— AI天气预报大模型

    相关: https://zhidx.com/news/40169.html https://zhidx.com/news/40290.html PS. 要知道,华为公司的最高学术成果就是AI天气预报, ...

  4. 强化学习 —— reinforce算法中更新一次策略网络时episodes个数的设置对算法性能的影响 —— reinforce算法中迭代训练一次神经网络时batch_size大小的不同设置对算法性能的影响

    本文相关的博客:(预先知识) 强化学习中经典算法 -- reinforce算法 -- (进一步理解, 理论推导出的计算模型和实际应用中的计算模型的区别) 本文代码地址: https://gitee.c ...

  5. MindSpore 建立神经网络

    代码原地址: https://www.mindspore.cn/tutorial/zh-CN/r1.2/model.html 建立神经网络: import mindspore.nn as nn cla ...

  6. AQS专题

    1.背景 2.预备知识 2.1.park.unpark.interrupt.isInterrupted.interrupted方法的理解 一:park.unpark 1.park.unpark它不是T ...

  7. 3. EMC EMS EMI

    1. 定义 1.1 EMC(Electromagnetic Compatibility) 电磁兼容性(EMC)是指系统正常工作的能力,不受其正常环境中电磁现象的干扰,不产生干扰其他设备的电干扰. 1. ...

  8. Win32 sdk 下树形控件响应鼠标单击与双击,获得选中项的名称

    //窗口过程函数INT_PTR CALLBACK myWin::myWinDlgProc(HWND dlgHwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) ...

  9. 【Linux】之切换root用户与重启系统相关命令

    一.切换用户 <Linux中怎么从root用户切换到普通用户> su是在用户间切换,可以是从普通用户切换到root用户, test@ubuntu:~$ su Password: root@ ...

  10. PYRAFORMER: 用于长时间序列建模和预测的低复杂度金字塔注意力《PYRAFORMER: LOW-COMPLEXITY PYRAMIDAL ATTENTION FOR LONG-RANGE TIME SERIES MODELING AND FORECASTING》(金字塔注意力模块机制、PAM、CSCM、多尺度)

    今天是2022年10月1日,今天重读一遍这篇论文. 10月1日16:48,上次读是4月20日,时间过得好快. 论文:PYRAFORMER: LOW-COMPLEXITY PYRAMIDAL ATTEN ...