我在 google 云平台中的生产服务器 debian 10 中遇到了问题。SSL 无法在 Apache 上运行,但以下条件已满足:
- mod ssl 已经启用
- 防火墙 GCP 已经打开。
- 已经在 ports.conf 中监听 443
- 端口 443 已打开,可以从内部(本地主机)或外部(另一台服务器/电脑)进行 telnet
- certbot 已经发布
- apache 配置 vhost 已经正确(我认为)
奇怪的是,我基于之前 VPS 的镜像创建了这个 VPS,https apache 已经可以正常工作。假设问题出在服务器 C 上。第一次我有服务器 A 并且 https 可以正常工作,我复制镜像并使服务器 B 也可以使用 https。然后我从服务器 B 复制镜像成为服务器 C,但 https 不起作用。
规格如下:
- GCP 云计算
- 阿帕奇 2.4
- cloudflare 免费计划(也适用于服务器 A 和 B)
- Debian 10
我是否遗漏了任何步骤?谢谢
编辑:
这是来自 Chrome 的错误:ERR_SSL_PROTOCOL_ERROR
这是来自 Firefox 的信息:SSL_ERROR_RX_RECORD_TOO_LONG
curl myserverIP -sv 的结果:
* Rebuilt URL to: MyServerIp/
* Trying MyServerIp...
* TCP_NODELAY set
* Connected to MyServerIp (MyServerIp) port 80 (#0)
> GET / HTTP/1.1
> Host: MyServerIp
> User-Agent: curl/7.55.1
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Wed, 11 Nov 2020 03:09:31 GMT
< Server: Apache/2.4.38 (Debian)
< Last-Modified: Sun, 20 Sep 2020 11:53:07 GMT
< ETag: "3ee-5afbd609741c1"
< Accept-Ranges: bytes
< Content-Length: 1006
< Vary: Accept-Encoding
< Content-Type: text/html
<
<!DOCTYPE html>
<html>
<head>
<title>MISTAR on Google Cloud</title>
<link rel="icon" href="favicon_exi.png" type="image/gif" sizes="16x16">
</head>
<style>
html, body {
height: 100%;
}
body {
margin: 0;
}
.flex-container {
height: 100%;
padding: 0;
margin: 0;
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
align-items: center;
justify-content: center;
}
.row {
width: auto;
/*border: 1px solid blue;*/
}
.flex-item {
/*background-color: tomato;*/
padding: 5px;
width: 300px;
height: 50px;
margin: 10px;
line-height: 20px;
color: white;
font-weight: bold;
font-size: 2em;
text-align: center;
}
</style>
<body>
<div class="flex-container">
<div class="row">
<div class="flex-item"><img src="mistar-main.493699d8.png" height="60px" /></div>
<div class="flex-item"><img src="cloud-logo.svg" width="280px" /></div>
</div>
</div>
</body>
</html>* Connection #0 to host MyServerIp left intact
openssl的结果:
CONNECTED(00000003)
140205097211008:error:1408F10B:SSL routines:ssl3_get_record:wrong version number:../ssl/record/ssl3_record.c:332:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 5 bytes and written 313 bytes
Verification: OK
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)
答案1
感谢所有帮助我调试的评论,在我将证书从蛇油证书更改为 sites-available 中的默认 ssl 文件中新生成的证书后,ssl 现在可以正常工作。