centos 安装SSL证书导致服务器在重新启动时失败

ou6hu8tu  于 2022-11-23  发布在  其他
关注(0)|答案(9)|浏览(240)

我通过电子邮件收到了我的证书,然后创建了必要的文件并复制了它。我去重新启动我的服务器,收到了以下错误。
[Wed 2012年2月8日13:02:06] [错误]初始化:无法从文件/home/sslcertificates/mydomain. crt读取服务器证书[Wed Feb 08 13:02:06 2012] [错误] SSL库错误:218529960错误:0 D 0680 A8:asn 1编码例程:ASN1_CHECK_TLEN:错误标记[Wed Feb 08 13:02:06 2012] [错误] SSL库错误:218595386错误:0 D 07803 A:asn 1编码例程:ASN1_ITEM_EX_D2I:嵌套的asn 1错误
有人有什么想法吗?

izkcnapc

izkcnapc1#

导致此错误消息的另一个可能的故障源是:而不是我链接到认证请求文件的证书文件。当您阅读文件的第一行时,可以识别出它:两者皆可

-----BEGIN CERTIFICATE REQUEST-----

或者

-----BEGIN CERTIFICATE-----

:—)

cnjp1d6j

cnjp1d6j2#

情况:Apache 2.4使用StartSSL证书生成ASN编码错误

发布日期:

AH02564: Failed to configure encrypted (?) private key <domain>.com:80:0, check /etc/pki/tls/certs/ssl.key

默认情况下,某些SSL颁发者会加密SSL密钥文件,因此请确保在服务器上解密该文件,并将其指向虚拟主机。
只需回显密钥文件以确保其未加密。

解密mod_ssl的密钥文件

openssl rsa -in ssl.key -out ssl.key

对于Apache conf(httpd.conf)中的SSL配置,添加以下配置并重新启动Apache。

# SSL
<VirtualHost *:443>
    ServerName gajen.com
    SSLCertificateKeyFile /etc/pki/tls/certs/ssl.key
    SSLCertificateFile /etc/pki/tls/certs/ssl.crt
    SSLCertificateChainFile /etc/pki/tls/certs/root.ca.pem
</VirtualHost>

故障排除:

  • 调试Apache第tail 50 /var/log/httpd/error_log
  • 调试mod_ssl tail 50 /var/log/httpd/ssl_error_log
5gfr0r5j

5gfr0r5j3#

在我的情况下,我有证书混合:SSLCertificateFile具有私钥,SSLCertificateKeyFile具有证书。

sczxawaw

sczxawaw4#

在这里留下这个,因为这是第一次谷歌搜索错误:当你安装了一个新的密码保护的证书,然后重新加载apache配置(而不是完全重新启动apache)时,也会导致这种情况。重新加载本身不会引发任何错误,但它也不会询问你的密码,也无法解密证书。
它可以通过完全重新启动apache来解决,这将要求密码短语并允许您解密。

f1tvaqid

f1tvaqid5#

通过重新创建 *.key文件并再次复制粘贴内容解决了问题。

gzjq41n4

gzjq41n46#

或者您需要在禁用旧密码自动输入之前。注解规则如下:

#SSLPassPhraseDialog exec:/etc/ssl/passphrase-script
pzfprimi

pzfprimi7#

最近在Apache 2.4中安装SSL时,我们遇到了同样的错误-“asn 1编码例程”
我们已经正确地放置了所有的文件,并在.conf文件中正确地指向它们。经过一天的故障排除,我们意识到问题不是在我们获得证书后的配置。
我们使用供应商的内置系统创建了证书签名请求(CSR)。这允许我们粘贴我们创建的密钥。供应商返回的SSL证书应该Map此CSR,而此CSRMap到我们的私钥。显然它不匹配。他们提供的SSL证书没有Map到CSR。

可能的原因由于unix行结尾(\n而不是\r\n)/编码(ANSI/UTF8)/需要新行,供应商端的CSR转换关键字错误。

我们使用OpenSSL自己创建了CSR,并绕过了供应商CSR生成。它成功了。因此,在我们的案例中,使用OpenSSL创建密钥和相应的CSR,并使用它生成公共SSL。

OpenSSL命令

openssl req -new -sha256 -key ~/site.com.ssl/site.com.key -out ~/site.com.ssl/site.com.csr
0yycz8jy

0yycz8jy8#

我遇到这个问题是因为我收到了一个IIS样式的.p7b文件的内容,它被粘贴到了一封电子邮件中。它有“-----开始CERTIFICATE-----”和“-----END CERTIFICATE-----”标记,就像.pem一样,并且内容使用了一个类似的base64编码。我将它转换成了一个 *.pem文件,如下所示:

openssl pkcs7 -print_certs -in cert.p7b -out cert.cer

在那之后,Apache 2.2很开心。

s71maibg

s71maibg9#

(Linux解决方案)这是很久以前发布的-但我有另一种方法来解决这个问题:通过编辑/etc/apache2.conf将错误日志记录更改为更详细的模式,并找到以下块:

#
# LogLevel: Control the severity of messages logged to the 
error_log. 
# Available values: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the log level for particular modules, e.g.
# "LogLevel info ssl:warn"
#
LogLevel warn

并将LogLevel更改为更低的值-我选择了trace1。然后重新启动apache:

sudo service restart apache2

我收到了同样的错误消息,但当我转到/var/log/apache2/error.log中的错误日志时,有更多的错误消息来帮助解决问题。我能够确定我将密钥文件描述符指向了错误的文件。
请确保将apache2.conf更改回warn并在故障排除后重新启动apache2服务,以避免error.log文件变得过大。

相关问题