具体使用 Apache 运行 端口 8980 上的 SSL
Use Apache To Run SSL On Port 8980 Specifically
我有一个 Web 服务,我可以通过键入以下 URL 来访问它(字符对字符):
http://10.115.252.127:8980/opennms/login.jsp
网站文件来自 /opt/opennms/jetty-webapps/opennms/
我的 objective 是使用 Apache (httpd.conf) 强制所有到此 URL 的流量使用 SSL 而不是 HTTP。
- 我已经成功安装了 SSL 证书,没有任何问题。
- 我已经配置了一个 VirtualHost 指令来将端口 80 重定向到 443
- 只有 /var/www/html/* 下的网站被成功重定向。
示例:http://10.115.252.127/numbers successfully redirects to https://10.115.252.127/numbers
http://10.115.252.127/charts successfully redirects to https://10.115.252.127/charts
但是,当我输入 URL http://10.115.252.127:8980/opennms/login.jsp 时,它始终以 HTTP 方式提供...如何使其像其他方式一样以 HTTPS 方式提供?我检查了论坛,所有帖子都假定您将始终重定向端口 80,并且不说任何关于如何在我解释的场景中使用 SSL 的信息。我在端口 3000 http://10.115.252.127:3000/login
上的另一个服务 运行 也有同样的问题
===摘自我的 httpd.conf===
<VirtualHost *:80>
ServerName 10.115.252.127
Redirect permanent / https://10.115.252.127/
</VirtualHost>
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/httpd/conf/ssl.crt/cert_mtocb2500lbscorp.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/mtocb2500-lbscorp.key
ServerName 10.115.252.127
#Documentroot /var/www/html
</VirtualHost>
根据您对我的理解的确认,您可以执行以下操作:
############################################################################
Listen 80
# All connections on port 80 are redirected to port 443
<VirtualHost *:80>
ServerName www.example.com
CustomLog "logs/80_access.log" combined
ErrorLog "logs/80_error.log"
Redirect permanent / https://www.example.com
# No documentRoot, no content
</VirtualHost>
############################################################################
Listen 443
# All URI are answered from the documentRoot directory
# EXCEPT /openms, which is proxied to :8980
<VirtualHost *:443>
ServerName www.example.com
# temporary, remove when tests done
LogLevel debug
CustomLog "logs/443_access.log" combined
Errorlog "logs/443_error.log"
SSLEngine on
SSLCertificateFile /etc/httpd/conf/ssl.crt/cert_mtocb2500lbscorp.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/mtocb2500-lbscorp.key
# For your redirection to 8980
ProxyPass /opennms "https://www.example.com:8980/"
ProxyPassReverse /opennms "https://www.example.com:8980/"
documentRoot "/yourdir/apache/htdocs"
DirectoryIndex index.html
</VirtualHost>
先决条件
- 您必须加载代理模块
- 您必须加载重写模块
- 端口 8980 链接到其他一些软件。 Apache 不处理 8980。
我有一个 Web 服务,我可以通过键入以下 URL 来访问它(字符对字符):
http://10.115.252.127:8980/opennms/login.jsp
网站文件来自 /opt/opennms/jetty-webapps/opennms/
我的 objective 是使用 Apache (httpd.conf) 强制所有到此 URL 的流量使用 SSL 而不是 HTTP。
- 我已经成功安装了 SSL 证书,没有任何问题。
- 我已经配置了一个 VirtualHost 指令来将端口 80 重定向到 443
- 只有 /var/www/html/* 下的网站被成功重定向。
示例:http://10.115.252.127/numbers successfully redirects to https://10.115.252.127/numbers http://10.115.252.127/charts successfully redirects to https://10.115.252.127/charts
但是,当我输入 URL http://10.115.252.127:8980/opennms/login.jsp 时,它始终以 HTTP 方式提供...如何使其像其他方式一样以 HTTPS 方式提供?我检查了论坛,所有帖子都假定您将始终重定向端口 80,并且不说任何关于如何在我解释的场景中使用 SSL 的信息。我在端口 3000 http://10.115.252.127:3000/login
上的另一个服务 运行 也有同样的问题===摘自我的 httpd.conf===
<VirtualHost *:80>
ServerName 10.115.252.127
Redirect permanent / https://10.115.252.127/
</VirtualHost>
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/httpd/conf/ssl.crt/cert_mtocb2500lbscorp.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/mtocb2500-lbscorp.key
ServerName 10.115.252.127
#Documentroot /var/www/html
</VirtualHost>
根据您对我的理解的确认,您可以执行以下操作:
############################################################################
Listen 80
# All connections on port 80 are redirected to port 443
<VirtualHost *:80>
ServerName www.example.com
CustomLog "logs/80_access.log" combined
ErrorLog "logs/80_error.log"
Redirect permanent / https://www.example.com
# No documentRoot, no content
</VirtualHost>
############################################################################
Listen 443
# All URI are answered from the documentRoot directory
# EXCEPT /openms, which is proxied to :8980
<VirtualHost *:443>
ServerName www.example.com
# temporary, remove when tests done
LogLevel debug
CustomLog "logs/443_access.log" combined
Errorlog "logs/443_error.log"
SSLEngine on
SSLCertificateFile /etc/httpd/conf/ssl.crt/cert_mtocb2500lbscorp.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/mtocb2500-lbscorp.key
# For your redirection to 8980
ProxyPass /opennms "https://www.example.com:8980/"
ProxyPassReverse /opennms "https://www.example.com:8980/"
documentRoot "/yourdir/apache/htdocs"
DirectoryIndex index.html
</VirtualHost>
先决条件
- 您必须加载代理模块
- 您必须加载重写模块
- 端口 8980 链接到其他一些软件。 Apache 不处理 8980。