更改 apache2 服务器的 ssl 端口。 (ERR_SSL_PROTOCOL_ERROR)

Change ssl port of apache2 server. (ERR_SSL_PROTOCOL_ERROR)

我正在我的 EC2 实例上开发 apache2 环境。为了安全起见,我想更改 apache2 的 ssl 端口。 我已经通过使用 chrome 浏览器检查页面来确认默认 ssl 端口 443 正在工作。但是在像下面这样修改 ports.conf 之后,我得到了一个错误, ERR_SSL_PROTOCOL_ERROR 当访问这个服务器时 https://xxxxxxx:18443/

是否有更改 ssl 端口的设置?

侦听端口

$ ss -lnt
State       Recv-Q Send-Q                         Local Address:Port                           Peer Address:Port
LISTEN      0      128                                        *:22                                        *:*
LISTEN      0      64                                         *:7777                                      *:*
LISTEN      0      50                                 127.0.0.1:3306                                      *:*
LISTEN      0      128                                       :::22                                       :::*
LISTEN      0      128                                       :::18443                                    :::*

/etc/apache2/ports.conf

#Listen 80

<IfModule ssl_module>
        Listen 18443
</IfModule>

<IfModule mod_gnutls.c>
        Listen 18443
</IfModule>

环境

EC2 入站安全策略

Custom TCP rule: TCP, 18443, 0.0.0.0/0
Custom UDP rule: UDP, 18443, 0.0.0.0/0

我自己找到了答案。我还需要编辑 default-ssl.conf。所以我总结了设置 ssl 和更改其端口的所有过程。在此示例中,我将 ssl 端口从 443 更改为 18443。

$ sudo apt-get install apache2
$ sudo a2enmod ssl
$ sudo a2ensite default-ssl
$ sudo service apache2 restart
$ ss -lnt
State      Recv-Q Send-Q        Local Address:Port          Peer Address:Port
LISTEN     0      128                      :::443                     :::*
LISTEN     0      128  

然后,尝试更改ssl端口。

$ sudo vi /etc/apache2/ports.conf
<IfModule ssl_module>
        Listen 18443
</IfModule>
<IfModule mod_gnutls.c>
        Listen 18443
</IfModule>

在这个设置中,我使用了default-ssl,所以我也要修改这个文件。

 $ sudo vi /etc/apache2/sites-available/default-ssl.conf
 <IfModule mod_ssl.c>
   <VirtualHost _default_:18443>
   ...

然后,重启apache2就可以访问http://xxxxxx:18443/

$ sudo service apache2 restart