首页 > 解决方案 > 如何仅使用 .crt 文件在 Apache 上配置 SSL

问题描述

我不熟悉 Apache rsrs 上的 SSL 配置

但是今天,一位客户要求我配置一台 Azure 机器(基于 Ubuntu 18.04)以用于某些网站。

一切正常...我已经安装了 Apache、PHP、Mysql、phpMyAdmin 等。但是,在完成工作之前,他要求我为该服务器上托管的域和所有子域安装通配符 SSL 证书。他在电子邮件正文中向我发送了一个 .CRT 文件和一个 Base64。

我尝试使用 Base64 作为 .KEY 文件,将 .CRT 文件转换为 .PEM(使用 openssl)并设置 Apache VirtualHosts(端口 443,显而易见),如下所示:

SSLEngine on
SSLCertificateFile /home/website/ssl/wildcard_cert.pem
SSLCertificateKeyFile /home/website/ssl/wildcard_cert.key
SSLCertificateChainFile /home/website/ssl/wildcard_cert.crt

apache2ctl configtest返回成功,但是尝试重启服务时,Apache 上不去。检查日志,私钥有错误,如下:

[ssl:error] [pid 30401] AH02579: Init: Private key not found
[ssl:error] [pid 30401] SSL Library Error: error:0D0680A8:asn1 encoding routines:asn1_check_tlen:wrong tag
[ssl:error] [pid 30401] SSL Library Error: error:0D08303A:asn1 encoding routines:asn1_template_noexp_d2i:nested asn1 error
[ssl:error] [pid 30401] SSL Library Error: error:0D0680A8:asn1 encoding routines:asn1_check_tlen:wrong tag
[ssl:error] [pid 30401] SSL Library Error: error:0D07803A:asn1 encoding routines:asn1_item_embed_d2i:nested asn1 error (Type=RSAPrivateKey)
[ssl:error] [pid 30401] SSL Library Error: error:04093004:rsa routines:old_rsa_priv_decode:RSA lib
[ssl:error] [pid 30401] SSL Library Error: error:0D0680A8:asn1 encoding routines:asn1_check_tlen:wrong tag
[ssl:error] [pid 30401] SSL Library Error: error:0D07803A:asn1 encoding routines:asn1_item_embed_d2i:nested asn1 error (Type=PKCS8_PRIV_KEY_INFO)
[ssl:emerg] [pid 30401] AH02564: Failed to configure encrypted (?) private key [mydomain.com]:443:0, check /home/website/ssl/wildcard_cert.key

注释 conf 文件中与 SSL 相关的行,Apache 运行良好,但仅限于 HTTP。

有人能帮我吗?

谢谢!:)

标签: apachesslhttps

解决方案


推荐阅读