要么删除,要么自动输入haproxy ssl的pem密码; Chrome仍然警告CA未签名

问题描述 投票:0回答:1

我最近收到了用于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-----

显然,由于我不想在线共享这些信息,因此缺少很多信息;但是,结构几乎相同。

当我将此链接链接到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不可信,就像我使用自签名证书一样。除了上面的内容之外,我还有什么需要做的吗?

ssl openssl certificate haproxy keytool
1个回答
1
投票

您需要将密码保护的密钥复制到非密码保护的密钥。

openssl rsa -in test.pem -out test-password-less.key

要立即将PEM提供给HAProxy,您还需要证书。将两个文件都放在one PEM文件中以进行代理。

cat $CERT test-password-less.key > haproxy-test.pem
© www.soinside.com 2019 - 2024. All rights reserved.