v3版 ssl 证书制作和 nginx 配置证书

201次阅读
没有评论

共计 2345 个字符,预计需要花费 6 分钟才能阅读完成。

一、证书制作

利用 openssl 生成 v3 带扩展属性的证书

1、生成秘钥

openssl genrsa -des3 -out server.pass.key 2048 -passin pass:1234

如果秘钥有密码,重启 web 服务器会要求验证密码,所以直接去掉秘钥中的密码。

openssl rsa -in server.pass.key -out server.key

2、生成证书请求文件

  1. 交互式:
openssl req -new -key server.key -out server.csr

终端会提示输入通用名、组织名称等等。

  1. 直接生成
openssl req -new -key server.key -out server.csr -subj /C=CH/ST=GuangZhou/L=GuangDong/O=Aman/OU=Aman/CN=www.huangzhen.com

CN=commonName(通用名)
OU=organizationUnit(组织部门名)
O=organizationName(组织名)
L=localityName(地址)
ST=stateName(州名-城市名)
C=country(国家)

查看证书请求文件

openssl req -text -noout -in server.csr

3、修改 openssl.cnf

  1. 查看 openssl.cnf 文件存放位置
openssl version -d
  1. 末尾添加使用者可选名称
cat >> /etc/pki/tls/openssl.cnf <<EOF
[ alt_names ]
DNS.1 = abc.example.com
DNS.2 = *.example.com
DNS.3 = www.huangzhen.com
IP.1 = 172.21.9.203
IP.2 = 172.21.9.204
EOF
  1. v3_req 中添加 subjectAltName = @alt_names
sed -i '/\[ v3_req \]/asubjectAltName = @alt_names' /etc/pki/tls/openssl.cnf

需要添加subjectAltName = @alt_names才会把上面的配置添加到证书。

4、生成 v3 证书

openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt -extfile /etc/pki/tls/openssl.cnf -extensions v3_req

查看证书内容

openssl x509 -text -noout -in server.crt

如果证书文件是der格式,则需要添加-inform der参数来指定其文件编码。

openssl x509 -inform der -text -noout -in server.csr

其他

  1. pem和der编码格式的相互转换
# pem转der
openssl x509 -outform der -in server.pem -out server.der
# der转pem
openssl x509 -inform der -in server.der -out server.crt

nginx 使用 ssl 证书

1、创建需要挂载的目录

mkdir -p /home/docker/nginx && \
cd /home/docker/nginx && \
mkdir conf.d && \
mkdir html && \
mkdir logs

2、复制容器内必要的文件

docker run -d --name nginx -p 88:80 nginx && \
docker cp nginx:/etc/nginx/nginx.conf ./ && \
docker cp nginx:/etc/nginx/conf.d/default.conf ./conf.d/ && \
docker rm -f nginx

nginx 的配置文件复制出来,不然启动的时候挂载会导致 nginx 配置文件丢失。

3、启动 nginx

docker run -d \
--name nginx \
--net=host \
-v /home/docker/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /home/docker/nginx/conf.d:/etc/nginx/conf.d \
-v /home/docker/nginx/logs:/var/log/nginx \
-v /home/docker/nginx/html:/usr/share/nginx/html \
-v /etc/localtime:/etc/localtime:ro \
--restart always \
--privileged=true nginx

因为 /home/docker/nginx/html 目录是空的,所以需要创建 index.html。

cat > /home/docker/nginx/html/index.html <<EOF
My test page
EOF

4、添加ssl证书

将 ssl 证书放在 /home/docker/nginx/conf.d 目录下。

cat >> /home/docker/nginx/conf.d/default.conf <<EOF
server {
   listen      443 ssl;
   listen  [::]:443 ssl;
   ssl_certificate  /etc/nginx/conf.d/server.crt;
   ssl_certificate_key  /etc/nginx/conf.d/server.key;
   server_name  www.huangzhen.com;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
}
EOF

重启 nginx

docker restart nginx

5、测试结果

将证书下载,双击安装,导入为受信任的根证书。

v3版 ssl 证书制作和 nginx 配置证书

提醒:本文发布于632天前,文中所关联的信息可能已发生改变,请知悉!

AD:【腾讯云服务器大降价】2核4G 222元/3年 1核2G 38元/年
正文完
 
阿蛮君
版权声明:本站原创文章,由 阿蛮君 2022-11-01发表,共计2345字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
Copyright © 2022-2024 阿蛮君博客 湘ICP备2023001393号
本网站由 亿信互联 提供云计算服务 | 蓝易云CDN 提供安全防护和加速服务
Powered by Wordpress  Theme by Puock