删除或自动输入 haproxy ssl 的 pem 密码; Chrome 仍然警告 CA 未签名
Either remove or automatically enter pem passphrase for haproxy ssl; Chrome still warns about CA not signed
我最近收到了一份用于 haproxy SSL 终止的签名证书。为了让 haproxy 使用它,我需要将 jks 文件转换为 pem 文件。首先,我将收到的 cer 文件转换为 crt,因为我之前有一个错误,即 haproxy 无法在 pem 文件中找到 crt 文件。对所有证书执行此操作:
$ openssl x509 -inform PEM -in <CER file here> -out <CRT output file>
然后我将根证书、中间证书和服务证书导入到已经有私钥的密钥库:
keytool -importcert -file $CERT -alias $ALIAS -keystore test.jdk
然后我将 jsk 文件转换为 p12 文件,然后将其转换为 pem 文件:
$ keytool -importkeystore -srckeystore test.jks -destkeystore test.p12 -srcstoretype jks -deststoretype pkcs12
Enter destination keystore password:
Re-enter new password:
$ openssl pkcs12 -in test.p12 -out test.pem
Enter Import Password:
MAC verified OK
Enter PEM pass phrase:
这会生成一个具有以下格式的 pem 文件:
Bag Attributes
friendlyName:
localKeyID:
-----BEGIN ENCRYPTED PRIVATE KEY-----
-----END ENCRYPTED PRIVATE KEY-----
Bag Attributes
friendlyName:
subject=
issuer=
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
Bag Attributes
friendlyName:
subject=
issuer=
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
Bag Attributes
friendlyName:
subject=
issuer=
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
Bag Attributes
friendlyName:
localKeyID:
subject=
issuer=
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
显然,这里缺少很多信息,因为我不想在网上分享这些信息;但是,结构几乎相同。
当我link这个到haproxy时:
frontend https
maxconn 2000
bind 0.0.0.0:4000 ssl crt /home/user/config/cert/test.pem
我 运行 它与 haproxy -d -f haproxy.cfg
,我被要求输入 PEM 密码短语。我需要能够在服务器启动时自动启动 haproxy,所以我不能每次都输入它 运行 它。有什么方法可以删除密码短语,或者生成没有密码的 pem 文件?或者我可以通过脚本提供吗?我用来在服务器启动时启动 haproxy 的脚本就是您在上面看到的命令,使用 nohup 重定向输出。
此外,当我转到 haproxy 前面的一项服务时,Chrome 仍然警告我 CA 不受信任,就像我使用自签名证书时一样。除了上述内容,我还需要做些什么吗?
您需要将受密码保护的密钥复制到不受密码保护的密钥。
openssl rsa -in test.pem -out test-password-less.key
现在要向 HAProxy 提供 PEM,您还需要证书。
将两个文件都分类为 一个 haproxy 的 PEM 文件。
cat $CERT test-password-less.key > haproxy-test.pem
或者删除 pem 密码,例如 Amazon EC2 Fedora Linux 实例:
sudo ssh-keygen -p -f EC2.pem
我最近收到了一份用于 haproxy SSL 终止的签名证书。为了让 haproxy 使用它,我需要将 jks 文件转换为 pem 文件。首先,我将收到的 cer 文件转换为 crt,因为我之前有一个错误,即 haproxy 无法在 pem 文件中找到 crt 文件。对所有证书执行此操作:
$ openssl x509 -inform PEM -in <CER file here> -out <CRT output file>
然后我将根证书、中间证书和服务证书导入到已经有私钥的密钥库:
keytool -importcert -file $CERT -alias $ALIAS -keystore test.jdk
然后我将 jsk 文件转换为 p12 文件,然后将其转换为 pem 文件:
$ keytool -importkeystore -srckeystore test.jks -destkeystore test.p12 -srcstoretype jks -deststoretype pkcs12
Enter destination keystore password:
Re-enter new password:
$ openssl pkcs12 -in test.p12 -out test.pem
Enter Import Password:
MAC verified OK
Enter PEM pass phrase:
这会生成一个具有以下格式的 pem 文件:
Bag Attributes
friendlyName:
localKeyID:
-----BEGIN ENCRYPTED PRIVATE KEY-----
-----END ENCRYPTED PRIVATE KEY-----
Bag Attributes
friendlyName:
subject=
issuer=
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
Bag Attributes
friendlyName:
subject=
issuer=
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
Bag Attributes
friendlyName:
subject=
issuer=
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
Bag Attributes
friendlyName:
localKeyID:
subject=
issuer=
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
显然,这里缺少很多信息,因为我不想在网上分享这些信息;但是,结构几乎相同。
当我link这个到haproxy时:
frontend https
maxconn 2000
bind 0.0.0.0:4000 ssl crt /home/user/config/cert/test.pem
我 运行 它与 haproxy -d -f haproxy.cfg
,我被要求输入 PEM 密码短语。我需要能够在服务器启动时自动启动 haproxy,所以我不能每次都输入它 运行 它。有什么方法可以删除密码短语,或者生成没有密码的 pem 文件?或者我可以通过脚本提供吗?我用来在服务器启动时启动 haproxy 的脚本就是您在上面看到的命令,使用 nohup 重定向输出。
此外,当我转到 haproxy 前面的一项服务时,Chrome 仍然警告我 CA 不受信任,就像我使用自签名证书时一样。除了上述内容,我还需要做些什么吗?
您需要将受密码保护的密钥复制到不受密码保护的密钥。
openssl rsa -in test.pem -out test-password-less.key
现在要向 HAProxy 提供 PEM,您还需要证书。 将两个文件都分类为 一个 haproxy 的 PEM 文件。
cat $CERT test-password-less.key > haproxy-test.pem
或者删除 pem 密码,例如 Amazon EC2 Fedora Linux 实例:
sudo ssh-keygen -p -f EC2.pem