我想配置我的家用服务器以便在443端口接受SSL连接。
我有www.mydomain.com域名,我刚刚使用mod_jk链接了Apache2和Tomcat,现在我还希望能够接受来自Web的https请求。
这是我的配置:
httpd.conf
<IfModule mod_jk.c>
JKWorkersFile /etc/apache2/workers.properties
JkShmFile /var/log/apache2/mod_jk.shm
JKLogFile /var/log/apache2/mod_jk.log
JkLogLevel debug
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
</IfModule>
<VirtualHost *:80>
DocumentRoot "/Library/ApacheTomcat/apache-tomcat-6.0.33/webapps/MyTomcatAppName"
ServerName www.mydomain.com
ErrorLog "/private/var/log/apache2/www.mydomain.com-error_log"
CustomLog "/private/var/log/apache2/www.mydomain.com-access_log" common
JkMountCopy On
JkMount /* ajp13
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/Library/ApacheTomcat/apache-tomcat-6.0.33/webapps/MyTomcatAppName"
ServerName mydomain.com
ErrorLog "/private/var/log/apache2/mydomain.com-error_log"
CustomLog "/private/var/log/apache2/mydomaino.com-access_log" common
JkMountCopy On
JkMount /* ajp13
</VirtualHost>
Then this is my Worker.properties file:
worker.list=ajp13
worker.ajp13.type=ajp13
worker.ajp13.host=localhost
worker.ajp13.port=8009
这是我的server.xml文件:
<Host name="localhost" appBase="/Library/ApacheTomcat/apache-tomcat-6.0.33/webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="/Library/ApacheTomcat/apache-tomcat-6.0.33/webapps/MyTomcatAppName" />
通过这种配置,我可以正确地在访问http://www.mydomain.com或http://domain.com时浏览我的Tomcat应用程序... 我的问题现在是使用https连接访问同样的网站,如https://www.mydomain.com或https://domain.com。 我在我的Mac Mini服务器(Lion OSX)上安装了GoDaddy证书,因此如果我键入https://www.mydomain.com(或https://domain.com),浏览器会正确地通知我存在“mydomain.com”的证书,但它也会显示:
Forbidden
You don't have permission to access / on this server.
Apache/2.2.20 (Unix) mod_ssl/2.2.20 OpenSSL/0.9.8r DAV/2 mod_jk/1.2.30 Server at mydomain.com Port 443
我确定这是因为我在虚拟主机标签中漏掉了一些内容...那么我该怎么修复它呢?
https://www.mydomain.com/
时收到 HTTP 响应(禁止访问),那么 HTTPS 已经在工作,因此你必须在某个地方配置了SSL*
选项。尝试设置它们所在的虚拟主机(如果不存在,请使用VirtualHost *:443
创建一个)并将Jk*
选项放置在那里。 - Bruno