- 由 虚拟的现实创建于10月 13, 2023 需要 3 分钟阅读时间
简介
CentOS 7 的最小化安装模式,通过 YUM 更新到最新版本。openssl 使用系统自带版本
自建CA
生成 CA 私钥
openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096
生成 CA 证书请求
openssl req -new -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/private/cakey.csr
生成 CA 根证书
openssl x509 -req -in /etc/pki/CA/private/cakey.csr -extensions v3_ca -signkey /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/certs/cacert.pem -days 3650
自建 server 端证书
生成 server 私钥
openssl genrsa -out /etc/pki/CA/private/myj.lan.pem 4096
生成 server 证书请求
openssl req -new -key /etc/pki/CA/private/myj.lan.pem -out /etc/pki/CA/private/myj.lan.csr -days 365
生成 server 端证书
openssl x509 -days 365 -req -in /etc/pki/CA/private/myj.lan.csr -extensions v3_req -CAkey /etc/pki/CA/private/cakey.pem -CA /etc/pki/CA/certs/cacert.pem -CAcreateserial -out /etc/pki/CA/private/myj.lan.crt
WBE 配置
将 myj.lan.crt he myj.lan.pem 配置文件内容复杂到 nginx 的配置文件。或者通过 konga 的配置完成。
完整配置
mkdir CA cd CA/ openssl genrsa -out ./myCA.key 4096 openssl req -x509 -new -key myCA.key -out myCA.cer -days 3650 -subj /CN="MeiYiJia" openssl genrsa -out ./test.lan.key 2048 openssl req -new -out ./test.lan.req -key ./test.lan.key -subj /CN=sso.test.lan/CN=sso.test.lan/CN=192.168.111.11 openssl x509 -req -in ./test.lan.req -out ./test.lan.cer -CAkey ./myCA.key -CA ./myCA.cer -days 720 -CAcreateserial -CAserial ./test.lan.serial openssl pkcs12 -export -in ./test.lan.cer -inkey ./test.lan.key -out ./test.lan.p12 -name "sso.test.lan"
泛域名和多域名配置
目标:生成针对 test.lan 的泛域名证书
证书请求中字段说明
字段名 | 缩写 | 说明 | 填写要求 |
---|---|---|---|
Country Name | C | 证书持有者所在国家 | 要求填写国家代码,用2个字母表示 |
State or Province Name | ST | 证书持有者所在州或省份 | 填写全称,可省略不填 |
Locality Name | L | 证书持有者所在城市 | 可省略不填 |
Organization Name | O | 证书持有者所属组织或公司 | 最好还是填一下 |
Organizational Unit Name | OU | 证书持有者所属部门 | 可省略不填 |
Common Name | CN | 证书持有者的通用名 | 必填。 对于非应用证书,它应该在一定程度上具有惟一性; 对于应用证书,一般填写服务器域名或通配符样式的域名。 |
Email Address | 证书持有者的通信邮箱 | 可省略不填 |
证书附加用途说明
extendedKeyUsage 可以指定证书目的,即用途,一般有:
- serverAuth:保证远程计算机的身份
- clientAuth:向远程计算机证明你的身份
- codeSigning:确保软件来自软件发布者,保护软件在发行后不被更改mailProtection:保护电子邮件消息
- timeStamping:允许用当前时间签名数据
如果不指定,则默认为 所有应用程序策略
使用配置文件生成证书
1、参照步骤2生成根证书
2、生成 test.lan 的域名 key
openssl genrsa -out test.lan.key 2048
3、配置证书生成文件
cat > ./web-ca.conf <<EOF [ req ] default_bits = 4096 prompt = no default_md = sha256 req_extensions = req_ext distinguished_name = dn [ dn ] C = CN ST = GuangDong L = DongGuan O = LingFang OU = Cloud CN = *.test.lan [ req_ext ] subjectAltName = @alt_names [ alt_names ] DNS.1 = test.lan DNS.2 = *.test.lan DNS.3 = webproxy.test.lan IP.1 = 192.168.112.98 IP.2 = 192.168.112.99 IP.3 = 192.168.112.100 [ v3_ext ] authorityKeyIdentifier=keyid,issuer:always basicConstraints=CA:FALSE keyUsage=keyEncipherment,dataEncipherment,nonRepudiation,digitalSignature extendedKeyUsage=serverAuth,clientAuth subjectAltName=@alt_names
4、生成泛域名证书
openssl req -new -key test.lan.key -out test.lan.csr -config web-ca.conf openssl x509 -req -in test.lan.csr -CA cacert.pem -CAkey cakey.pem -CAcreateserial \ -out test.lan.crt -days 3650 -extensions v3_ext -extfile web-ca.conf
5、验证证书情况
openssl x509 -text -in test.lan.crt -noout
新版版本
openssl genrsa -out ca.key 2048 openssl req -x509 -new -nodes -key ca.key -sha256 -days 3650 -out ca.pem openssl req -new -sha256 -nodes -out myj.lan.csr -newkey rsa:2048 -keyout myj.lan.key -config web-ca.conf openssl x509 -req -in myj.lan.csr -CA ca.pem -CAkey ca.key -CAcreateserial -out myj.lan.crt -days 3650 -sha256 -extfile v3.ext openssl x509 -text -in myj.lan.crt -noout openssl pkcs12 -export -in myj.lan.crt -inkey myj.lan.key -out myj.lan.pfx cat > ./web-ca.conf <<EOF [ req ] default_bits = 2048 prompt = no default_md = sha256 distinguished_name = dn [ dn ] C = CN ST = GuangDong L = DongGuan O = LingFang OU = Cloud CN = myj.lan EOF cat > ./v3.ext <<EOF authorityKeyIdentifier=keyid,issuer:always basicConstraints=CA:FALSE keyUsage=keyEncipherment,dataEncipherment,nonRepudiation,digitalSignature extendedKeyUsage=serverAuth,clientAuth subjectAltName=@alt_names [ alt_names ] DNS.1 = myj.lan DNS.2 = *.myj.lan DNS.3 = localhost IP.1 = 192.168.0.101 EOF
- 无标签