UTC时区的位置是【Africa/Casablanca】
ubuntu上设置时区:dpkg-reconfigure tzdata
centos上设置时区:tzselect
设置时间:date -s “1970/01/01 01:00:00.000”
上面这些操作,是为了生成1970年开始的证书
1.安装必要工具
apt-get install easy-rsa # 修改vars文件 cd /usr/share/easy-rsa/ vi ./vars
# 修改注册信息,比如公司地址、公司名称、部门名称等。 export KEY_COUNTRY="CN" export KEY_PROVINCE="Shanghai" export KEY_CITY="Shanghai" export KEY_ORG="my company" export KEY_EMAIL="xxx@qq.com" export KEY_OU="my ou" # 初始化环境变量 source ./vars
# 清除keys目录下所有与证书相关的文件 # 下面步骤生成的证书和密钥都在/usr/share/easy-rsa/keys目录里 ./clean-all # 生成根证书ca.crt和根密钥ca.key(一路按回车即可) ./build-ca # 为服务端生成证书和密钥(一路按回车,直到提示需要输入y/n时,输入y再按回车,一共两次) ./build-key-server server # 为客户端生成证书和密钥(一路按回车,直到提示需要输入y/n时,输入y再按回车,一共两次) ./build-key client1 # 创建迪菲·赫尔曼密钥,会生成dh2048.pem文件(生成过程比较慢,在此期间不要去中断它) ./build-dh
2.另外一种非常方便的方式
#1. 生成 2048 位的 RSA 私钥: openssl genrsa -out private.key 2048 #2. 根据生成的私钥创建 CSR: openssl req -new -key private.key -out request.csr -subj "/C=CN/ST=Shanghai/L=Shanghai/O=MyOrganization/OU=IT/CN=sd-xxxx" -addext "subjectAltName=DNS:sd-xxxx" #您可以根据实际情况修改 `subj` 参数中的各项内容。其中sd-xxxx是自定义域名 #3. 生成有效期为 100 年的自签名证书: openssl x509 -req -days 36500 -in request.csr -signkey private.key -out certificate.crt -extfile <(printf "subjectAltName=DNS:sd-xxxx") #4. 验证生成的自签名证书: openssl x509 -in certificate.crt -noout -text # 这个命令是用来查看是否与域名绑定在一起,python会需要这个 openssl x509 -in ./certificate.crt -noout -text | grep -E "Subject:|Subject Alternative Name" #通过以上步骤,您就可以生成一个有效期为 100 年的自签名 SSL 证书了。 #要将生成的自签名 SSL 证书和私钥转换为 Java KeyStore (JKS) 格式,可以使用 `keytool` 命令和 `openssl` 工具。以下是具体步骤: ### 完整的命令示例 #1. 将私钥和证书合并为一个 PKCS#12 文件: openssl pkcs12 -export -in certificate.crt -inkey private.key -out keystore.p12 -name myalias #2. 将 PKCS#12 文件转换为 JKS 文件: keytool -importkeystore -deststorepass 123456 -destkeypass 123456 -destkeystore keystore.jks -srckeystore keystore.p12 -srcstoretype PKCS12 -srcstorepass 123456 -alias myalias #通过以上步骤,您可以将生成的自签名 SSL 证书和私钥转换为 JKS 格式。
3.java中使用自签名证书(docker中)
# 复制自签名证书到容器中 COPY ./additionFile/sd-xxxx.crt /usr/local/share/ca-certificates/sd-xxxx.crt # 更新证书存储并信任自签名证书 RUN update-ca-certificates # 加入到java信任库 RUN $JAVA_HOME/bin/keytool --noprompt -importcert -keystore $JAVA_HOME/lib/security/cacerts -storepass 123456 -alias sd-xxxx -file /usr/local/share/ca-certificates/sd-xxxx.crt # 验证java信任库 # $JAVA_HOME/bin/keytool -list -keystore $JAVA_HOME/lib/security/cacerts -storepass 123456
4.python中使用自签名证书(docker中)
# 复制自签名证书到容器中 COPY ./additionFile/sd-xxxx.crt /usr/local/share/ca-certificates/sd-xxxx.crt # 更新证书存储并信任自签名证书 RUN update-ca-certificates # 上面是更新的默认python的ssl证书位置。 # 如果python是免安装版本,例如虚拟环境这种,需要额外更新虚拟环境的ssl证书位置。 RUN \ # 安装poetry curl -sSL https://install.python-poetry.org | python3.10 - && \ # 创建venv环境,如果是自己在docker中命令行,可以执行【source /data/cusvenv/bin/activate】进入 python3.10 -m venv ${VIRTUAL_ENV} && \ # 加入到python信任库 . /data/cusvenv/bin/activate && \ pip install certifi && \ CERT_FILE=$(python -m certifi) && \ cat /usr/local/share/ca-certificates/sd-xxxx.crt >> $CERT_FILE && \ deactivate