我刚刚从debian 7升级到debian 8(apache 2.4),名为debian.domain.com我有Request Tracker,一个帮助台软件,我想运行它从https://helpdesk.domain.com (我有一个有效的SSL证书)
正确的DNS解决helpdesk.domain.com debian.domain.com已经安装,并正常工作。
我有一个小的PHP脚本,通过普通的http服务firefox更新,我也有一个包含Flash播放器更新的/ var / www中的pub文件夹。 这个必须通过https服务。
问题是:我可以从helpdesk.domain.com服务器的帮助台和Flash更新吗?
服务台文件位于/ opt / rt4 / share / html,/ pub文件夹位于/ var / www。
到目前为止,我可以得到以下工作:
-Firefox更新正在从普通的旧的http工作
快速更新正在服务器上helpdesk.domain.com就好了
-Helpdesk只能从debian.domain.com访问,因此会收到证书错误
这里是我目前的apache 2.4configuration,有人可以帮我调整它,如果可能,实现这个? 不知何故,我认为Debian 7工作正常,但我不知道:
<IfModule mod_ssl.c> <VirtualHost *:443> ServerAdmin [email protected] ServerName debian.domain.com:443 <Directory "/opt/rt4/sbin"> SSLOptions +StdEnvVars </Directory> <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Require all granted </Directory> SSLEngine on SSLCertificateFile /etc/ssl/certs/domain.cert SSLCertificateKeyFile /etc/ssl/certs/private.key SSLCertificateChainFile /etc/ssl/certs/root_bundle.crt AddDefaultCharset UTF-8 ScriptAlias / /opt/rt4/sbin/rt-server.fcgi/ DocumentRoot "/opt/rt4/share/html" <Location /> <IfVersion >= 2.4> Require all granted </IfVersion> Options +ExecCGI AddHandler fcgid-script fcgi </Location> </VirtualHost> <VirtualHost *:443> ServerAdmin [email protected] ServerName helpdesk.domain.com:443 AddDefaultCharset UTF-8 DocumentRoot /var/www SSLEngine on SSLCertificateFile /etc/ssl/certs/domain.cert SSLCertificateKeyFile /etc/ssl/certs/private.key SSLCertificateChainFile /etc/ssl/certs/root_bundle.crt </VirtualHost> </IfModule>
这是我在Debian 7(apache 2.2)上使用的旧configuration,但是我试着用这个版本来使用它,同样的事情发生
<IfModule mod_ssl.c> NameVirtualHost *:443 <VirtualHost *:443> ServerAdmin [email protected] ServerName debian.domain.com:443 AddDefaultCharset UTF-8 DocumentRoot /opt/rt4/share/html Alias /NoAuth/images/ /opt/rt4/share/html/NoAuth/images/ ScriptAlias / /opt/rt4/sbin/rt-server.fcgi/ <Location /> ## Apache version < 2.4 Order allow,deny Allow from all </Location> <Location /NoAuth/images > </Location> <Directory "/opt/rt4/sbin"> SSLOptions +StdEnvVars </Directory> <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> <Directory "/usr/lib/cgi-bin"> AllowOverride None <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> SSLEngine on SSLCertificateFile /etc/ssl/certs/domain.crt SSLCertificateKeyFile /etc/ssl/certs/domain/private.key SSLCertificateChainFile /etc/ssl/certs/domain/root_bundle.crt <FilesMatch "\.(cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars </FilesMatch> <Directory /usr/lib/cgi-bin> SSLOptions +StdEnvVars </Directory> </VirtualHost> <VirtualHost *:443> ServerAdmin [email protected] ServerName helpdesk.domain.com:443 AddDefaultCharset UTF-8 DocumentRoot /var/www SSLEngine on SSLCertificateFile /etc/ssl/certs/domain.crt SSLCertificateKeyFile /etc/ssl/certs/domain/private.key SSLCertificateChainFile /etc/ssl/certs/domain/root_bundle.crt </VirtualHost> </IfModule>
更新:这是我的000-default.conf文件,用于纯http。 redirect不起作用,因为Flash客户端根据Adobe文档1直接请求https。 我的sslconfiguration被称为rt.conf
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www <Directory /> Options FollowSymLinks #AllowOverride None AllowOverride All </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> </VirtualHost>
请发布您的完整configuration。 http的configuration丢失。 如果我不得不猜测,你必须要:
将ServerName条目更改为以下内容:
ServerName helpdesk.domain.com
确保您的helpdesk.domain.comconfiguration不是Apache第一次读取。 如果它们在不同的文件中,Apache将按照字母数字升序读取它们。 Debian上的默认000-default.conf通常是这个工作。
为了确保https的某些文件,可以使用mod_redirect或者mod_alias (使用Redirect指令来完成这个工作,另请参阅文档 ,请说明“这个必须通过https服务”,是不是允许http工作?