• 欢迎访问好鸭,WordPress信息,WordPress教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏好鸭吧

使用openssl自签CA多域名泛域名证书的方法

Linux haoduck 6天前 7次浏览 0个评论

前面说了想要反代GitHub,缓解国内VPS访问GitHub很慢的尴尬情况。

之前用sniproxy实现了这个功能,用起来挺好的,但是要占用443端口,总是不那么方便。

考虑一下用Nginx+自签证书反代吧,搜索了好久,结合了几个教程的内容,自签多域名CA证书成功了,先记录下来。

一、安装openssl

apt-get install -y openssl
apt-get install -y libssl-dev
yum install -y openssl
yum install -y libssl-dev

二、修改openssl配置文件openssl.cnf

CentOS的在/etc/pki/tls/openssl.cnf
Debian/Ubutnu的在/etc/openssl/openssl.cnf

将其复制一份

mkdir ssl && cd ssl
cp /etc/openssl/openssl.cnf .
vim openssl.cnf

1. 找到下面这两项,将其取消注释
copy_extensions = copy
req_extensions = v3_req

2. 修改[ v3_req ]代码块
新增一行subjectAltName = @alt_names

3. 新增一个代码块[ alt_names ],DNS.1/2/3写多个域名
[ alt_names ]
DNS.1 = github.com
DNS.2 = *.github.com
DNS.3 = githubusercontent.com
DNS.4 = *.githubusercontent.com
IP.1 = 192.168.1.1
IP.2 = 127.0.0.1

修改完成保存

三、使用配置文件方式生成CA根证书

# 生成CA私钥文件
openssl genrsa -out ca.key 2048

# 使用配置文件方式生成CA根证书
openssl req -x509 -new -nodes -key ca.key -sha256 -days 3650 \
    -subj "/C=CN/ST=GUANGDONG/L=GUANGZHOU/O=HAODUCK/OU=HAODUCK/CN=127.0.0.1" \
    -config ./openssl.cnf -extensions v3_req \
    -out ca.crt

查看证书是否支持多域名
openssl x509 -text -in ca.crt -noout

四、使用配置文件方式生成服务器端证书

# 生成服务器私钥文件
openssl genrsa -out server.key 2048

#生成签名请求
openssl req -new -key ./server.key \
    -subj "/C=CN/ST=GUANGDONG/L=GUANGZHOU/O=HAODUCK/OU=HAODUCK/CN=127.0.0.1" \
    -config ./openssl.cnf -extensions v3_req \
    -out server.csr

#使用CA证书签名Server端证书
openssl x509 -req -in ./server.csr -CA ca.crt -CAkey ca.key -CAcreateserial \
    -extfile ./openssl.cnf -extensions v3_req \
    -days 3650 -sha256 -out server.pem

查看生成的服务器端证书是否支持多域名openssl x509 -text -in server.crt -noout

五、使用证书

1. 客户端安装CA根证书ca.crt

2. Nginx里配置server.crtserver.key

相关文章

《使用openssl一键自签SSL证书命令》:https://haoduck.com/706.html
《使用sniproxy反代Github的教程》:https://haoduck.com/713.html


好鸭 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:使用openssl自签CA多域名泛域名证书的方法
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址