因为需要让ios应用可以绕过appstore,要找个https的地方放ipa,决定使用已有http server。
首先需要说明的是,apache可以通过反向代理方式将用户的https分发到tomcat的http上,因此只需要配置apache的https即可。但我这里还是把两个服务器的https都配上了。
其次,配置https最核心的是要制作证书(apache和tomcat不太一样,之前在网上查的apache2的用openssl命令的方法做不出apache能识别的证书),然后是各自服务器的配置。
一、apache2的ssl配置,参考:http://blog.csdn.net/any2mobile/article/details/15814087
1、创建证书的过程有三步:a、制作私钥文件;b、制作证书(包含公钥和一些其他信息);c、将证书交CA签字(这个步骤估计没几个人会去做,可以通过制作自签名的证书来绕过)。
命令简单:1、安装ssl-cert:sudo apt-get install ssl-cert 2、生成证书:按默认方式生成:sudo make-ssl-cert generate-default-snakeoil;也可按模板生成:sudo make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/ssl/private/apache2.pem,此时生成的文件包含私钥和公钥两部分
2、apache的配置,更简单:在/etc/apache2/sites-enabled下建立/etc/apache2/sites-available/default-ssl.conf的链接:sudo ln -s 000-default-ssl.conf /etc/apache2/sites-available/default-ssl.conf,如果之前是按照默认方式生成的证书,至此apache的https已经可用了。
3、apache中配置分发到tomcat:修改000-default-ssl.conf,增加:
ProxyPass /appname http://192.168.1.96:8080/appname
ProxyPassReverse /appname http://192.168.1.96:8080/appname
二、tomcat的配置,这个的教程很多,不贴链接了(主要是我也忘了参考的是那篇了)主要是用JDK的keytool生成私钥文件和证书,命令大概如下:
keytool -genkey -alias tomcat -keyalg RSA -keypass Envisi0n -storepass Envisi0n -keystore server.keystore -validity 3600
然后,然后配置server.xml,去掉关于Connector port="8443"那段的注释,修改相应信息,完整的如下:
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="/var/lib/tomcat6/conf/server.keystore"
keystorePass="Envisi0n" />