在 Ubuntu/apache 上运行的 ASP.NET 应用程序的 sslv3 警报握手失败

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

我正在尝试使用 apache 在 Ubuntu 上运行用 asp.net 编写的 REST api。它在 HTTP 上按预期运行,但当我切换到 HTTPS 时,它不起作用。

在 Firefox 中,我收到 SSL_ERROR_NO_CYPHER_OVERLAP。

跑步

curl https://api.objectdb.wexosmk.xyz
,我明白了

curl: (35) OpenSSL/3.0.13: error:0A000410:SSL routines::sslv3 alert handshake failure

在 DNS 记录中,Cloudflare 表示该主机名未包含在证书中。

我有其他子域的工作证书(例如https://objectdb.wexosmk.xyz),因此这是此应用程序的特定问题。

我用

certbot -d api.objectdb.wexosmk.xyz
生成了证书。

HTTP 虚拟主机如下所示:

<VirtualHost *:80>
    ServerName api.objectdb.wexosmk.xyz
    ServerAdmin ...

    ProxyPreserveHost On
    ProxyPass / http://localhost:6500/
    ProxyPassReverse / http://localhost:6500/

    ErrorLog ${APACHE_LOG_DIR}/object-db-api-error.log
    CustomLog ${APACHE_LOG_DIR}/object-db-api-access.log combine
RewriteEngine on
RewriteCond %{SERVER_NAME} =api.objectdb.wexosmk.xyz
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

HTTPS 虚拟主机如下所示(由 certbot 生成):

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerName api.objectdb.wexosmk.xyz
    ServerAdmin ...

    ProxyPreserveHost On
    ProxyPass / http://localhost:6500/
    ProxyPassReverse / http://localhost:6500/

    ErrorLog ${APACHE_LOG_DIR}/object-db-error.log
    CustomLog ${APACHE_LOG_DIR}/object-db-access.log combine

RewriteEngine On
SSLCertificateFile /etc/letsencrypt/live/api.objectdb.wexosmk.xyz/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/api.objectdb.wexosmk.xyz/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>

我还尝试将以下几行添加到 HTTPS 虚拟主机,但没有成功:

    ProxyRequests Off
    SSLProxyVerify none
    SSLProxyCheckPeerCN off
    SSLProxyCheckPeerName off
    SSLProxyCheckPeerExpire off

也许是 asp.net 应用程序的问题?

asp.net apache ubuntu certbot
1个回答
0
投票

显然我的问题与多级子域有关。使用

api.wexosmk.xyz
代替
api.objectdb.wexosmk.xyz
效果很好。

© www.soinside.com 2019 - 2024. All rights reserved.