在 Windows Server 2008 R2 上,我的 IT 管理员使用 Windows 证书管理工具安装了证书。该证书适用于 *.thedomain.com。出于安全原因,他将其设置为不可导出:我不应该将手放在证书上。
此配置将允许我将证书与 Microsoft 产品一起使用,但不能放弃证书。
问:有没有办法配置 Apache 2 以“Windows 方式”使用这个证书?
在 Windows Server 2008 R2 上,我的 IT 管理员使用 Windows 证书管理工具安装了证书。该证书适用于 *.thedomain.com。出于安全原因,他将其设置为不可导出:我不应该将手放在证书上。
此配置将允许我将证书与 Microsoft 产品一起使用,但不能放弃证书。
问:有没有办法配置 Apache 2 以“Windows 方式”使用这个证书?
我通过电子邮件从我的证书颁发机构收到了一个以这样开头的证书:
-----BEGIN CERTIFICATE-----
MIAGCSqGSIb3DQEHAqCAMIACAQExADALBgkqhkiG9w0BBwGggDCCBWMwggRLoAMC
并像这样结束:
14lWAyMfs77oOghZtOxFNfeKW/9mz1Cvxm1XjRl4t7mi0VfqH5pLr7rJjhJ+xr3/
AAAxAAAAAAAAAA==
-----END CERTIFICATE-----
我通过电子邮件收到它,然后我将证书部分复制/粘贴到 test.cer 文件中(我翻了四倍 - 检查我复制/粘贴的部分是否正确)
当我尝试在 Apache 2 中使用它时,出现以下错误:
[Mon Sep 30 23:15:36.754820 2013] [ssl:emerg] [pid 7544:tid 444] AH02241: Init: Unable to read server certificate from file C:/projects/test-ssl/test.cer
[Mon Sep 30 23:15:36.754820 2013] [ssl:emerg] [pid 7544:tid 444] SSL Library Error: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Mon Sep 30 23:15:36.754820 2013] [ssl:emerg] [pid 7544:tid 444] SSL Library Error: error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error (Type=X509)
[Mon Sep 30 23:15:36.754820 2013] [ssl:emerg] [pid 7544:tid 444] AH02312: Fatal error initialising mod_ssl, exiting.
经过一番研究,我发现原因可能是证书损坏,所以为了检查它,我测试了它
C:\Apache24\bin\openssl.exe x509 -in test.cer -text
我得到一个类似的错误:
unable to load certificate
8100:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:.\crypto\asn1\tasn_dec.c:1319:
8100:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:.\crypto\asn1\tasn_dec.c:381:Type=X509_CINF
8100:error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error:.\crypto\asn1\tasn_dec.c:751:Field=cert_info, Type=X509
8100:error:0906700D:PEM routines:PEM_ASN1_read_bio:ASN1 lib:.\crypto\pem\pem_oth.c:83:
我不是 SSL 方面的专家,但我怀疑证书颁发机构 (Symantec) 向我发送了损坏的证书。
知道这个证书有什么问题吗?它可能是我不知道的不同格式吗?
如果我用一个网络服务器的托管来类比,我会说git的数据应该在/var/git
,所以我的git仓库在/var/git/myrepo
问:这是正确的猜测吗?
我有一台监听端口的服务器(cassini)XXXX
。它只接受来自本地主机的连接。这是不可配置的。
我想暂时运行一个程序,它将监听YYYY
所有网络接口的端口,并将每个连接转发到XXXX
本地主机上的端口。
什么是这样做的好工具?