如何在Apache中配置SSL

How to configure SSL in Apache

提问人:Roman 提问时间:7/16/2023 最后编辑:Roman 更新时间:7/25/2023 访问量:39

问:

如何在 apache webserver 中为具有相同 IP 但端口号和 DocumentRoot 的 yii2 项目的前端和后端配置 SSL?

以下是我尝试过的方法,但它仅适用于我开始的任何内容。virtualHost block

我正在使用centOS 7

在文件中ssl.conf

<VirtualHost 192.168.12.125:443>
    ServerName test.mydomain.co.tz
    DocumentRoot /var/www/html/tan_web/frontend/web
    SSLEngine on
    SSLCertificateFile /var/www/html/tan_web/sslDocs/mail_tanesco_co_tz.crt
    SSLCertificateKeyFile /var/www/html/tan_web/sslDocs/test_tanesco_co_tz.key
    SSLCertificateChainFile /var/www/html/tan_web/sslDocs/DigiCertCA.crt
</VirtualHost>

<VirtualHost 192.168.12.125:443>
    ServerName test.mydomain.co.tz:8080
    DocumentRoot /var/www/html/tan_web/backend/web
    SSLEngine on
    SSLCertificateFile /var/www/html/tan_web/sslDocs/mail_tanesco_co_tz.crt
    SSLCertificateKeyFile /var/www/html/tan_web/sslDocs/test_tanesco_co_tz.key
    SSLCertificateChainFile /var/www/html/tan_web/sslDocs/DigiCertCA.crt
</VirtualHost>

并在httpd.conf

<VirtualHost 192.168.12.125:80>
    ServerAdmin [email protected]
    ServerName test.mydomain.co.tz:80
    DocumentRoot /var/www/html/tan_web/frontend/web
    Redirect permanent / https://test.mydomain.co.tz/
</VirtualHost>

<VirtualHost 192.168.12.125:8080>
    ServerAdmin [email protected]
    ServerName test.mydomain.co.tz:8080
    DocumentRoot /var/www/html/tan_web/backend/web
    Redirect permanent / https://test.mydomain.co.tz:8080/
</VirtualHost>

有人帮忙,我已经在这里堆了好几天了。谢谢。

Apache SSL HTTPS OpenSSL 虚拟主机

评论


答:

2赞 algorythms 7/16/2023 #1

在 Virtualhost 中,您应该具有 IP地址和端口的唯一组合。例如,在第二个块中,将其从 443 更改为 8443

<VirtualHost 192.168.12.125:443>
    ServerName test.mydomain.co.tz
    DocumentRoot /var/www/html/tan_web/frontend/web
    SSLEngine on
    SSLCertificateFile /var/www/html/tan_web/sslDocs/mail_tanesco_co_tz.crt
    SSLCertificateKeyFile /var/www/html/tan_web/sslDocs/test_tanesco_co_tz.key
    SSLCertificateChainFile /var/www/html/tan_web/sslDocs/DigiCertCA.crt
</VirtualHost>

<VirtualHost 192.168.12.125:8443> <!-- Change the port here -->
    ServerName test.mydomain.co.tz:8080
    DocumentRoot /var/www/html/tan_web/backend/web
    SSLEngine on
    SSLCertificateFile /var/www/html/tan_web/sslDocs/mail_tanesco_co_tz.crt
    SSLCertificateKeyFile /var/www/html/tan_web/sslDocs/test_tanesco_co_tz.key
    SSLCertificateChainFile /var/www/html/tan_web/sslDocs/DigiCertCA.crt
</VirtualHost>

在 httpd.conf 中,HTTP 流量必须定向到相关端口:

<VirtualHost 192.168.12.125:80>
    ServerAdmin [email protected]
    ServerName test.mydomain.co.tz:80
    DocumentRoot /var/www/html/tan_web/frontend/web
    Redirect permanent / https://test.mydomain.co.tz/
</VirtualHost>

<VirtualHost 192.168.12.125:8080>
    ServerAdmin [email protected]
    ServerName test.mydomain.co.tz:8080
    DocumentRoot /var/www/html/tan_web/backend/web
    Redirect permanent / https://test.mydomain.co.tz:8443/ <!-- Redirect to the new port -->
</VirtualHost>

评论

0赞 Mogens 7/16/2023
请显示您用于调用后端的 URL
1赞 Bünyamin Tasdelen 7/16/2023 #2

在 CentOS 中,在 Debian/Ubuntu 中添加 和 ,以下行:/etc/httpd/conf.d/ssl.conf/etc/apache2/ports.conf

Listen 8080 https

Apache/mod_ssl,默认情况下,443/TCP 是已知的,但必须将任何其他 TLS 感知 TCP 端口添加到配置中。

否则,任何非 443/TCP 端口将仅作为支持 HTTP 的端口进行处理。