本地代码托管工具
visual svn server -- 服务端
https://www.visualsvn.com/server/download/
tortoise client
https://tortoisesvn.net/downloads.html
问题1:
我在windows电脑上安装了 visual svn server,创建了一个用户,创建了一个 Repositories。但是我在浏览器里面访问这个url地址的时候,却提示了错误。例如这个URL https://desktop-abc/svn/test1/ 错误信息如下 无法访问此网站 网址为 https://desktop-abc/svn/test1/ 的网页可能暂时无法连接,或者它已永久性地移动到了新网址。 ERR_SSL_KEY_USAGE_INCOMPATIBLE
问题2:
为啥我在另外一台电脑安装visual svn server 之后,一切都正常,也能在网页浏览新创建的目录的 url呢???
证书 详细信息 常规 证书路径 显示(S): <所有> 字段 使用者 henrypc 公钥 RSA (2048 Bits) 公钥参数 05 00 密钥用法 Digital Signature, Key Encipherment, Data Encip 增强型密钥用法 服务器身份验证(1.3.6.1.5.5.7.3.1) 使用者可选名称 DNS Name=henrypc 指纹 b3f3af62ecaa2f8cb4fbb3cad1bbc1256c9a68a3 Digital Signature, Key Encipherment, Data Encipherment (b0)
问题回答1:
ERR_SSL_KEY_USAGE_INCOMPATIBLE 错误通常是因为 SSL 证书配置不正确,或者证书与服务器的 SSL/TLS 设置不兼容。 你可以按照以下步骤进行排查和修复: 1. 检查 SSL 证书 确保你为 VisualSVN Server 配置了正确的 SSL 证书。你可以使用自签名证书,或者从受信任的证书颁发机构(CA)获取证书。如果是自签名证书,你需要确保客户端信任该证书。 如果你刚开始使用 VisualSVN Server,默认情况下可能会生成一个自签名证书。 2. 检查证书的 Key Usage 证书的 Key Usage 属性需要支持服务器身份验证。你可以用工具(比如 OpenSSL)查看证书的详细信息,确保证书的 Key Usage 中包含了 Digital Signature 和 Key Encipherment,这些是 SSL/TLS 握手所需要的。 你可以在证书文件上右键查看详细信息,查看证书的“密钥用途”字段是否正确。 3. 检查 VisualSVN Server 的配置 打开 VisualSVN Server 管理工具,确认配置了正确的 SSL 设置。 如果你使用的是自签名证书,尝试重新生成证书,或者更换成受信任的证书。 确保 https://desktop-42em4eq/svn/ 中的 desktop-42em4eq 可以被正确解析到你的 Windows 机器。 4. 浏览器缓存与重启 有时浏览器会缓存旧的证书或 SSL 配置,导致问题。你可以清理浏览器缓存并重启浏览器,或者试着用不同的浏览器访问 URL。 还可以尝试在浏览器中访问 http://desktop-42em4eq/svn/test1/ 看是否能通过 HTTP 连接,以确认问题是 SSL 配置问题而不是 SVN 服务器的访问问题。 5. 检查防火墙和端口 确保你的 Windows 防火墙或其他网络防火墙没有阻止 443 端口(HTTPS)上的连接。 你可以尝试使用 telnet desktop-42em4eq 443 来检查端口是否可访问。 6. 查看日志 VisualSVN Server 会记录日志,你可以查看服务器的日志文件,看是否有更详细的错误信息,帮助你定位问题。 如果这些步骤都无法解决问题,可以考虑重新配置 SSL 证书,或者尝试使用 HTTP(不加密连接)来排除 SSL 配置的问题。
问题回答2:
如果在另一台电脑上安装了 VisualSVN Server 并且一切正常,而在当前电脑上却出现问题,可能是以下几个原因: ### 1. **SSL 证书的问题** - 在第一台电脑上,可能是 SSL 证书的配置不正确,或者是证书本身的问题。例如,你可能在第一台电脑上使用了自签名证书,而浏览器并未信任该证书,导致连接失败。 - 在第二台电脑上,可能安装了受信任的证书,或者浏览器自动信任了该自签名证书,导致没有出现问题。 **解决办法**:检查并重新配置 SSL 证书,确保证书被正确安装并且浏览器信任。 ### 2. **网络访问或 DNS 配置问题** - 第一台电脑上的 URL 使用了 `desktop-42em4eq`,如果该主机名没有正确解析(例如,DNS 配置不正确,或者没有正确映射到 IP 地址),浏览器可能无法访问。第二台电脑上可能能够正确解析该主机名。 **解决办法**: - 尝试在浏览器上直接使用 IP 地址来访问,比如 `https://<your-ip>/svn/test1/`,看看是否能正常访问。 - 检查第一台电脑的主机名解析,确保网络中其他设备能够正确访问该主机。 ### 3. **防火墙设置** - 第一台电脑的防火墙或网络设置可能阻止了 HTTPS 连接。即使 VisualSVN Server 配置正确,防火墙也可能会阻止 443 端口的通信。 - 在第二台电脑上,可能没有这种防火墙或网络阻挡。 **解决办法**: - 检查第一台电脑的防火墙设置,确保允许端口 443 通过。可以暂时禁用防火墙来排除这个问题。 - 如果你使用的是 Windows 防火墙,检查“允许应用通过 Windows 防火墙”设置中是否允许 `VisualSVN Server` 进行访问。 ### 4. **浏览器与缓存问题** - 如果浏览器缓存了旧的 SSL 配置信息,可能会导致访问失败。第二台电脑上没有这个问题。 **解决办法**: - 清除浏览器缓存,或者使用隐私/无痕模式访问 URL。 - 尝试使用不同的浏览器。 ### 5. **VisualSVN Server 配置差异** - 第二台电脑可能配置得更为正确,或者在安装过程中没有出现问题。第一台电脑上的配置可能有某些错误,比如配置了错误的监听端口、路径或权限设置。 **解决办法**: - 确保第一台电脑上的 VisualSVN Server 配置与第二台电脑一致,尤其是 SSL 设置和监听端口。 ### 6. **SSL/TLS 协议的兼容性问题** - 第二台电脑的浏览器可能支持更多的 SSL/TLS 协议和加密套件,而第一台电脑上的 SSL 配置可能不兼容某些浏览器版本,导致 `ERR_SSL_KEY_USAGE_INCOMPATIBLE` 错误。 **解决办法**: - 检查 VisualSVN Server 的 SSL 配置,确保支持常见的 SSL/TLS 协议,或者使用更现代的证书和加密算法。 ### 7. **VisualSVN Server 服务没有正确启动** - 在第一台电脑上,VisualSVN Server 可能没有正确启动或者服务配置有问题。你可以尝试重新启动 VisualSVN Server 服务,或者检查服务的日志,看看是否有任何错误。 **解决办法**: - 打开 VisualSVN Server 管理工具,查看服务状态,确认它正在运行。 ### 8. **端口冲突** - 可能在第一台电脑上,HTTPS(443 端口)被其他程序占用,导致 VisualSVN Server 无法正常监听该端口。第二台电脑可能没有这个问题。 **解决办法**: - 检查 443 端口是否被其他程序占用,你可以使用命令 `netstat -an | find "443"` 来查看端口占用情况。 ### 总结 你可以从以下几个方面排查问题: 1. **SSL 证书配置**:确保证书正确并被浏览器信任。 2. **网络配置和 DNS**:确认主机名能够正确解析。 3. **防火墙设置**:确保没有阻止 443 端口。 4. **VisualSVN 配置**:检查服务的配置是否正确。 如果排查以上方面后仍然无法解决,建议尝试重装 VisualSVN Server,或者直接使用 HTTP 协议进行测试,排除 SSL 配置的问题。
问题3:
根据你的描述,访问 VisualSVN Server 的 HTTPS URL 时出现 `ERR_SSL_KEY_USAGE_INCOMPATIBLE` 错误,这通常与 SSL/TLS 证书的配置问题有关。以下是逐步排查和解决问题的方案: --- ### **1. 确认 VisualSVN Server 服务状态** - 打开 **Windows 服务管理器**(按 `Win + R` 输入 `services.msc`)。 - 检查以下服务是否正在运行: - **VisualSVN Server** - **Apache Subversion**(相关服务) - 如果服务未运行,右键启动并设置为“自动启动”。 --- ### **2. 检查 URL 格式和端口** - VisualSVN Server 默认使用 **HTTPS 端口 443** 和 **HTTP 端口 80**。 - 确保 URL 格式正确,例如: ```url https://desktop-42em4eq/svn/test1/ ``` 或指定端口(如果自定义过): ```url https://desktop-42em4eq:8443/svn/test1/ ``` - 如果端口被修改,需在 URL 中显式指定端口号。 --- ### **3. 临时测试 HTTP 访问** - 尝试使用 **HTTP** 替代 HTTPS 访问仓库,验证是否是 SSL 证书问题: ```url http://desktop-42em4eq/svn/test1/ ``` - 如果 HTTP 可以访问,说明问题确实出在 SSL 证书配置上。 --- ### **4. 解决 SSL 证书问题** VisualSVN Server 默认使用自签名证书,可能导致浏览器不信任或密钥用途不兼容。以下是修复步骤: #### **4.1 重新生成证书(推荐)** 1. 打开 **VisualSVN Server Manager**(以管理员身份运行)。 2. 右键点击服务器名称(如 `https://desktop-42em4eq:8443`),选择 **Properties**。 3. 切换到 **Certificate** 选项卡,点击 **Generate new certificate**。 4. 填写证书信息(如 Common Name 为服务器主机名 `desktop-42em4eq`)。 5. 生成完成后,重启 VisualSVN Server 服务。 #### **4.2 导出并信任证书** 1. 在 **Certificate** 选项卡中,点击 **View Certificate**。 2. 切换到 **Details** 选项卡,点击 **Copy to File**,导出证书(`.cer` 格式)。 3. 双击导出的证书文件,选择 **Install Certificate**。 4. 选择 **Local Machine** > **Place all certificates in the following store** > **Trusted Root Certification Authorities**。 5. 完成安装后,重启浏览器并重新访问 HTTPS URL。 #### **4.3 检查证书密钥用途** - 如果问题依旧,可能是证书的密钥用途(Key Usage)配置错误。 - 使用 OpenSSL 检查证书详细信息: ```bash openssl x509 -in "C:\Program Files\VisualSVN Server\conf\server.crt" -text -noout ``` - 确保证书的以下字段包含正确值: ```ini Key Usage: Digital Signature, Key Encipherment Extended Key Usage: TLS Web Server Authentication ``` - 如果不符合,需重新生成证书或联系证书颁发机构(CA)修正。 --- ### **5. 检查防火墙设置** - 确保 Windows 防火墙允许入站流量通过 VisualSVN Server 的 HTTPS 端口(默认 443 或自定义端口)。 - 打开 **Windows Defender 防火墙** > **高级设置** > **入站规则**,确认有允许 Apache HTTP Server 或相关端口的规则。 --- ### **6. 清除浏览器缓存和 SSL 状态** - 浏览器可能缓存了旧的证书信息。尝试以下操作: 1. 清除浏览器缓存。 2. 重置 SSL 状态: - 打开命令提示符,运行: ```cmd ipconfig /flushdns ``` --- ### **7. 使用 SVN 客户端测试** - 使用 **TortoiseSVN** 或命令行测试仓库访问: ```bash svn ls https://desktop-42em4eq/svn/test1/ --username your_username ``` - 如果客户端提示证书错误,选择永久接受证书(`p` 选项)。 --- ### **8. 查看 VisualSVN Server 日志** - 日志路径:`C:\Program Files\VisualSVN Server\log` - 检查 `error.log` 或 `ssl_error.log`,寻找与 SSL 握手失败相关的错误信息。 --- ### **9. 替代方案:使用 IP 地址或绑定域名** - 如果主机名解析有问题,尝试用服务器 IP 地址访问: ```url https://192.168.x.x/svn/test1/ ``` - 或在 VisualSVN Server 中绑定域名,确保证书的 Common Name(CN)与访问地址一致。 --- ### **总结** 通过重新生成证书、信任证书、检查端口和防火墙,应能解决 `ERR_SSL_KEY_USAGE_INCOMPATIBLE` 错误。如果问题依旧,考虑升级 VisualSVN Server 或联系其技术支持。
问题回答4:
根据你的补充信息(另一台电脑安装 VisualSVN Server 完全正常),可以推断问题确实与 VisualSVN Server 本身无关,而是由第一台电脑的特定环境配置引起。以下是更精准的排查方向和解决方案: --- ### **关键原因分析** 错误 `ERR_SSL_KEY_USAGE_INCOMPATIBLE` 的核心是 **SSL 证书的密钥用途(Key Usage)或扩展密钥用途(Extended Key Usage)不兼容浏览器要求**。常见触发场景: 1. **自签名证书配置错误**:证书缺少 `TLS Web Server Authentication` 用途。 2. **证书链问题**:浏览器无法验证证书信任链。 3. **主机名不匹配**:证书的 Common Name (CN) 或 Subject Alternative Name (SAN) 未包含实际访问的地址(如 `desktop-42em4eq`)。 4. **系统或浏览器限制**:旧版系统/浏览器不支持证书的加密算法(如 SHA-1)。 --- ### **针对性解决方案** #### **1. 检查证书的密钥用途** 通过以下步骤验证第一台电脑的证书配置: 1. **打开证书文件**: - 进入 VisualSVN Server 安装目录(默认 `C:\Program Files\VisualSVN Server\conf\`)。 - 找到 `server.crt`(证书文件)和 `server.key`(私钥文件)。 2. **使用 OpenSSL 检查证书**: ```bash openssl x509 -in "C:\Program Files\VisualSVN Server\conf\server.crt" -text -noout ``` - 确认以下字段存在且正确: ```ini Key Usage: Digital Signature, Key Encipherment Extended Key Usage: TLS Web Server Authentication X509v3 Subject Alternative Name: DNS:desktop-42em4eq # 你的服务器主机名 ``` #### **2. 重新生成并绑定正确的证书** 1. **生成新证书**: - 打开 **VisualSVN Server Manager**,右键服务器实例,选择 **Properties > Certificate > Generate New Certificate**。 - 在 **Common Name (CN)** 中填写服务器的主机名(如 `desktop-42em4eq`)。 - 勾选 **Subject Alternative Name (SAN)** 并添加相同的主机名。 2. **重启服务**: - 重启 VisualSVN Server 服务使新证书生效。 #### **3. 信任证书** 即使证书配置正确,浏览器仍可能因自签名证书不受信任而报错。需手动信任证书: 1. **导出证书**: - 在 **Certificate** 选项卡点击 **View Certificate > Details > Copy to File**,导出为 `.cer` 文件。 2. **安装到受信任的根证书存储**: - 双击导出的 `.cer` 文件,选择 **安装证书 > 本地计算机 > 将所有证书放入以下存储 > 受信任的根证书颁发机构**。 3. **清除浏览器缓存**: - 重启浏览器并访问 `https://desktop-42em4eq/svn/test1/`。 #### **4. 验证主机名解析** 确保客户端能正确解析 `desktop-42em4eq` 到服务器的 IP 地址: 1. **在客户端执行 ping 测试**: ```cmd ping desktop-42em4eq ``` - 如果无法解析,需在客户端的 `hosts` 文件中添加条目: ```ini # C:\Windows\System32\drivers\etc\hosts 192.168.x.x desktop-42em4eq # 替换为服务器实际 IP ``` #### **5. 检查端口冲突** 确保 VisualSVN Server 的 HTTPS 端口(默认 443)未被其他程序占用: 1. **查看端口监听情况**: ```cmd netstat -ano | findstr :443 ``` - 如果发现其他进程占用端口,需修改 VisualSVN Server 的端口(如 8443)并更新 URL。 #### **6. 排除安全软件干扰** 临时禁用防火墙或杀毒软件,测试是否仍报错: - **Windows Defender 防火墙**:关闭入站/出站规则测试。 - **第三方安全软件**:如 360、McAfee 等,可能拦截 SSL 握手。 #### **7. 测试不同客户端环境** - **使用另一台电脑或手机**:访问 `https://desktop-42em4eq/svn/test1/`,确认是否所有设备均报错。 - **使用命令行工具**: ```bash curl -vk https://desktop-42em4eq/svn/test1/ ``` - 输出中会显示详细的 SSL 握手信息,帮助定位证书问题。 --- ### **最终验证** 完成上述步骤后,按以下流程确认问题是否解决: 1. **浏览器访问**:直接输入 HTTPS URL。 2. **SVN 客户端访问**: ```bash svn checkout https://desktop-42em4eq/svn/test1/ --username your_user ``` 3. **检查日志**: - VisualSVN Server 日志路径:`C:\Program Files\VisualSVN Server\log\error.log` --- ### **总结** 问题根源很可能是第一台电脑的 SSL 证书配置(密钥用途或主机名不匹配)或客户端信任问题。通过重新生成证书、绑定正确的主机名、手动信任证书,并确保网络可达性,应能彻底解决 `ERR_SSL_KEY_USAGE_INCOMPATIBLE` 错误。如果仍有问题,可提供浏览器控制台(F12 > Console)的详细错误截图进一步分析。

浙公网安备 33010602011771号