美文网首页PHPer进阶知识
https证书制作/申请

https证书制作/申请

作者: wangfeiq | 来源:发表于2022-01-22 16:14 被阅读0次

自签证书

如果你使用的时IP而不是域名,只需要将下面的yourdomain.com改成IP地址即可。

  1. 生成CA证书私钥
    openssl genrsa -out ca.key 4096
  2. 生成CA根证书
openssl req -x509 -new -nodes -sha512 -days 3650 \
 -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=yourdomain.com" \
 -key ca.key \
 -out ca.crt
  1. 生成服务器证书私钥
    openssl genrsa -out yourdomain.com.key 4096
  2. 生成证书签名请求
openssl req -sha512 -new \
    -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=yourdomain.com" \
    -key yourdomain.com.key \
    -out yourdomain.com.csr
  1. 生成 x509 v3扩展文件
cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]
DNS.1=yourdomain.com
DNS.2=yourdomain
DNS.3=hostname
DNS.4=www.yourdomain.com
EOF

在前面制作证书时,我们使用的域名(CN/Common Name)都是yourdomain.com,如果我们这个域名提供服务有很多,如mail.yourdomain.com用于提供邮件服务,www.yourdomain.com提供网络服务,那就需要给这个域名单独申请一个证书,因为证书里的Common Name字段要和域名一一对应。当域名很多时,申请证书就很麻烦了。解决方法是只生成一个证书,但把证书给多个域名使用。该证书的Common Name,即CN字段为yourdomain.com,然后使用一个扩展文件,指定证书生效的域名有哪些,如上面的yourdomain,hostname,www.mydomain.com等等。
当然,如果如果你没有域名,只有一个IP,上面的步骤也可以跳过。
参考FQDN: https://blog.csdn.net/u012842205/article/details/51931017
参考SAN: https://liaoph.com/openssl-san/ 简单来说,使用了 SAN 字段的 SSL 证书,可以扩展此证书支持的域名,使得一个证书可以支持多个不同域名的解析。

  1. 通过v3扩展文件来生成服务端证书文件
openssl x509 -req -sha512 -days 3650 \
    -extfile v3.ext \
    -CA ca.crt -CAkey ca.key -CAcreateserial \
    -in yourdomain.com.csr \
    -out yourdomain.com.crt

以上即可生成自签证书。使用时,将ca.crt文件加入到系统的信任证书中即可。

  1. 如果服务是通过docker容器的形式对外提供,需要将crt证书转换成cert格式的证书。因为docker daemon会把crt后缀的证书当作CA根证书。
  • 生成cert证书:
    openssl x509 -inform PEM -in yourdomain.com.crt -out yourdomain.com.cert
  • 将证书拷贝到docker的证书目录
cp yourdomain.com.cert /etc/docker/certs.d/yourdomain.com/
cp yourdomain.com.key /etc/docker/certs.d/yourdomain.com/
cp ca.crt /etc/docker/certs.d/yourdomain.com/

注: 如果你使用的nginx默认https端口不是443端口,需要将上述的路径修改成/etc/docker/certs.d/yourdomain.com:portetc/docker/certs.d/harbor_IP:port

  • 重启docker。 systemctl restart docker

完整的脚本如下

yourdomain=$1
openssl genrsa -out ca.key 4096

openssl req -x509 -new -nodes -sha512 -days 3650 \
 -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=${yourdomain}" \
 -key ca.key \
 -out ca.crt

openssl genrsa -out ${yourdomain}.key 4096

openssl req -sha512 -new \
    -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=${yourdomain}" \
    -key ${yourdomain}.key \
    -out ${yourdomain}.csr

cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]
DNS.1=yourdomain.com
DNS.2=${yourdomain}
DNS.3=hostname
DNS.4=www.yourdomain.com
EOF

openssl x509 -req -sha512 -days 3650 \
    -extfile v3.ext \
    -CA ca.crt -CAkey ca.key -CAcreateserial \
    -in ${yourdomain}.csr \
    -out ${yourdomain}.crt

申请免费证书。

如果需要在公网提供服务,下面的网站可以申请90天的免费证书,按照步骤申请即可。
https://app.zerossl.com/certificate/new

相关文章

  • https证书制作/申请

    自签证书 如果你使用的时IP而不是域名,只需要将下面的yourdomain.com改成IP地址即可。 生成CA证书...

  • 申请https证书

    做微信小程序时必须连接https. 不能http, 所以,自己测试的网站需要一个证书。 记下来申请步骤 去阿里云申...

  • 申请HTTPS证书

    一.什么是HTTPS 关于HTTPS的技术解释我就不赘述了,请参看百度百科:http://baike.baidu....

  • https证书申请

    以xx.xx.xx.com.cn域名申请https证书为例子 1、准备环境:可访问外网的linux机器,安装了ng...

  • windows系统配置apache虚拟域名(https)

    https虚拟主机搭建 证书为腾讯云申请的免费证书腾讯云证书免费申请方法:https://jingyan.bai...

  • 免费申请HTTPS证书

    1.阿里云申请证书:选择,Symantec,如下图1所示 没看到免费的证书,是吧,进行如下操作: 点击图一中的证书...

  • https免费证书申请

    证书有两种,一种是 ECC 证书(内置公钥是 ECDSA 公钥),一种是 RSA 证书(内置 RSA 公钥)。简单...

  • ubuntu下用nginx搭建https和wss

    https 和 wss1.申请证书, 暂时申请的是腾讯云的域名型(DV)免费SSL证书 我们用到时ng证书申请证书...

  • CentOS环境下部署wordpress,nginx配置http

    https://www.freessl.org/ 一个提供免费HTTPS证书申请的网站.申请证书下载,配置见 ht...

  • 使用freessl申请证书

    FreeSSL.org 是一个免费提供 HTTPS 证书申请、HTTPS 证书管理和 HTTPS 证书到期提醒服务...

网友评论

    本文标题:https证书制作/申请

    本文链接:https://www.haomeiwen.com/subject/jsiuhrtx.html