1、准备:
从http://www.apache.org上下载最新版的支持SSL的Apache安装文件(目前最新版为httpd-2.2.16-win32-x86-openssl-0.9.8o.msi)
从http://windows.php.net/download/上下载最新版的Thread Safe(Not Thread Safe版的在使用curl_init()函数时会出错)的PHP组建(目前最新版为php-5.3.3)。
2、将php-5.3.3解压到D:\php-5.3.3下。将根文件夹下的php.ini-development复制一份并命名为php.ini, 打开将;extension=php_mysql.dll、;extension=php_mbstring.dll;、extension=php_gd2.dll前面的注释(;)去掉配置完毕,在进行Web Service时需要开启extension=php_soap.dll、extension=php_curl.dll。 注:在开发期建议打开PHP的错误提示,在php.ini文件里找到display_errors = Off 改为 display_errors = On即可。
3、安装Apache服务器到一目录(D:\Program Files\Apache Software Foundation\Apache2.2), 在安装过程中设置一域名(cas.server)。打开目录/conf/下的httpd.conf文件, 找到LoadModule 并在最后(其实添加到任何位置都行, 这里只是为了美观)添加
LoadModule php5_module "D:/php-5.2.14/php5apache2_2.dll"
AddType application/x-httpd-php .php
PHPIniDir "D:/php-5.3.3"
开启模块
LoadModule ssl_module modules/mod_ssl.so重新启动Apache服务器
扩展:更改Apache服务器的根目录
找到DocumentRoot 位置, 将后面的位置改为想要的位置即可如:D:\www\htdocs, 将此目录设置访问权限。添加
<Directory "D:/www/htdocs">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
如果更改了根目录建议将原来的Directory后面的地址直接更改为设置的目录即可。PHP配置完成。
4、SSL配置:
使用控制台Console进入Apache根目录的bin目录。输入以下三句配根据提示填写用户名、密码、地区、域名、邮箱等。
openssl req -new -config ../conf/openssl.cnf -out server.csr
openssl rsa -in privkey.pem -out server.key
openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 365
第一句会在bin目录下生成 privkey.pem和server.csr
第三局会在目录下生成server.key
将server.key和server.crt复制到/conf/目录下。并用控制台Console进入执行如下命令, 将证书导入到Java内。
keytool -import -alias apache -file server.crt -keypass changeit -keystore "%JAVA_HOME%/jre/lib/security/cacerts"
开启Apache的SSL模块打开/conf/httpd.conf,将
#Include conf/extra/httpd-ssl.conf
前面的注释去掉。
找到
SSLCertificateFile "D:/Program Files/Apache Software Foundation/Apache2.2/conf/server.crt"
SSLCertificateKeyFile "D:/Program Files/Apache Software Foundation/Apache2.2/conf/server.key"
将文件设为server.crt和server.key所在的目录, 默认极为/conf/无需修改。
此时已经配置完毕, 访问https://cas.server测试,
注:如果您在上面配置Apache根目录的时候更改了位置,那么此时可能会提示您没有访问权限。原因是SSL的默认根目录和Apache安装的根目录位置相同。 打开/conf/extra/httpd-ssl.conf找到DocumentRoot位置设为您所设的位置即可, 如果不想和Apache的根目录相同。 则必须在/conf/httpd.conf文件上添加访问该目录的权限。
5、Tomcat的CAS配置。
在控制台Console进入JDK根目录的bin目录
1、打印安全证书列表
keytool -list -keystore "%JAVA_HOME%/jre/lib/security/cacerts"
2、将别名为tomcat的安全证书从证书库里删除
keytool -delete -alias tomcat -keypass changeit
3、创建别名为tomcat的证书, 会存储在root目录下的.keystore内
keytool -genkey -alias tomcat -keypass changeit -keyalg RSA
输入密码changeit等等, 您的名字与姓氏填写CAS服务器的域名(如:cas.server), 写IP会出错, 我也不知道会出什么错,官方这样说的, 咱都是按套路出牌的人, 这样整就行了。
4、将证书从.keystore文件内导出
keytool -export -alias tomcat -keypass changeit -file server.crt 输入密码changeit
5、将证书导入到Java的安全证书内, 注意是jdk里面的jre。
keytool -import -alias tomcat -file server.crt -keypass changeit -keystore "%JAVA_HOME%/jre/lib/security/cacerts"(官方网站http://www.jasig.org/cas/server-deployment/solving-ssl-issues上没有引号, 但是如果%JAVA_HOME%有空格的话会出错) 输入密码
这时在JDK的/bin/目录下会生成一个server.crt拷贝到Tomcat的conf文件夹下。
在C:\Documents and Settings\登录名 下会生成一个.keystore文件拷贝到Tomcat的conf文件夹下
修改Tomcat/conf/server.xml文件在
<Connector port="8443" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
内添加
<!-- .keystore的目录和密码 -->
keystoreFile="D:/Qone/apache-tomcat-5.5.17/conf/.keystore" keystorePass="changeit"
<!-- Java安全证书库的目录 -->
truststoreFile="D:/Program Files/Java/jdk1.6.0_18/jre/lib/security/cacerts"
不同的版本修改方式不一样, 这个实在Tomcat5.5上配置的, Tomcat6不同, 具体信息参看Tomcat的docs。(%tomcat-docs%/ssl-howto.html)
6、说明:
-alias 后面的是证书的别名
-keypass 后面的是整数密码
-keyalg 后面的是使用的加密算法。RSA为非对称加密
OK
CommunityWebServiceImpl的casLogin(ticket)方法设为cas.server
从http://www.apache.org上下载最新版的支持SSL的Apache安装文件(目前最新版为httpd-2.2.16-win32-x86-openssl-0.9.8o.msi)
从http://windows.php.net/download/上下载最新版的Thread Safe(Not Thread Safe版的在使用curl_init()函数时会出错)的PHP组建(目前最新版为php-5.3.3)。
2、将php-5.3.3解压到D:\php-5.3.3下。将根文件夹下的php.ini-development复制一份并命名为php.ini, 打开将;extension=php_mysql.dll、;extension=php_mbstring.dll;、extension=php_gd2.dll前面的注释(;)去掉配置完毕,在进行Web Service时需要开启extension=php_soap.dll、extension=php_curl.dll。 注:在开发期建议打开PHP的错误提示,在php.ini文件里找到display_errors = Off 改为 display_errors = On即可。
3、安装Apache服务器到一目录(D:\Program Files\Apache Software Foundation\Apache2.2), 在安装过程中设置一域名(cas.server)。打开目录/conf/下的httpd.conf文件, 找到LoadModule 并在最后(其实添加到任何位置都行, 这里只是为了美观)添加
LoadModule php5_module "D:/php-5.2.14/php5apache2_2.dll"
AddType application/x-httpd-php .php
PHPIniDir "D:/php-5.3.3"
开启模块
LoadModule ssl_module modules/mod_ssl.so重新启动Apache服务器
扩展:更改Apache服务器的根目录
找到DocumentRoot 位置, 将后面的位置改为想要的位置即可如:D:\www\htdocs, 将此目录设置访问权限。添加
<Directory "D:/www/htdocs">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
如果更改了根目录建议将原来的Directory后面的地址直接更改为设置的目录即可。PHP配置完成。
4、SSL配置:
使用控制台Console进入Apache根目录的bin目录。输入以下三句配根据提示填写用户名、密码、地区、域名、邮箱等。
openssl req -new -config ../conf/openssl.cnf -out server.csr
openssl rsa -in privkey.pem -out server.key
openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 365
第一句会在bin目录下生成 privkey.pem和server.csr
第三局会在目录下生成server.key
将server.key和server.crt复制到/conf/目录下。并用控制台Console进入执行如下命令, 将证书导入到Java内。
keytool -import -alias apache -file server.crt -keypass changeit -keystore "%JAVA_HOME%/jre/lib/security/cacerts"
开启Apache的SSL模块打开/conf/httpd.conf,将
#Include conf/extra/httpd-ssl.conf
前面的注释去掉。
找到
SSLCertificateFile "D:/Program Files/Apache Software Foundation/Apache2.2/conf/server.crt"
SSLCertificateKeyFile "D:/Program Files/Apache Software Foundation/Apache2.2/conf/server.key"
将文件设为server.crt和server.key所在的目录, 默认极为/conf/无需修改。
此时已经配置完毕, 访问https://cas.server测试,
注:如果您在上面配置Apache根目录的时候更改了位置,那么此时可能会提示您没有访问权限。原因是SSL的默认根目录和Apache安装的根目录位置相同。 打开/conf/extra/httpd-ssl.conf找到DocumentRoot位置设为您所设的位置即可, 如果不想和Apache的根目录相同。 则必须在/conf/httpd.conf文件上添加访问该目录的权限。
5、Tomcat的CAS配置。
在控制台Console进入JDK根目录的bin目录
1、打印安全证书列表
keytool -list -keystore "%JAVA_HOME%/jre/lib/security/cacerts"
2、将别名为tomcat的安全证书从证书库里删除
keytool -delete -alias tomcat -keypass changeit
3、创建别名为tomcat的证书, 会存储在root目录下的.keystore内
keytool -genkey -alias tomcat -keypass changeit -keyalg RSA
输入密码changeit等等, 您的名字与姓氏填写CAS服务器的域名(如:cas.server), 写IP会出错, 我也不知道会出什么错,官方这样说的, 咱都是按套路出牌的人, 这样整就行了。
4、将证书从.keystore文件内导出
keytool -export -alias tomcat -keypass changeit -file server.crt 输入密码changeit
5、将证书导入到Java的安全证书内, 注意是jdk里面的jre。
keytool -import -alias tomcat -file server.crt -keypass changeit -keystore "%JAVA_HOME%/jre/lib/security/cacerts"(官方网站http://www.jasig.org/cas/server-deployment/solving-ssl-issues上没有引号, 但是如果%JAVA_HOME%有空格的话会出错) 输入密码
这时在JDK的/bin/目录下会生成一个server.crt拷贝到Tomcat的conf文件夹下。
在C:\Documents and Settings\登录名 下会生成一个.keystore文件拷贝到Tomcat的conf文件夹下
修改Tomcat/conf/server.xml文件在
<Connector port="8443" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
内添加
<!-- .keystore的目录和密码 -->
keystoreFile="D:/Qone/apache-tomcat-5.5.17/conf/.keystore" keystorePass="changeit"
<!-- Java安全证书库的目录 -->
truststoreFile="D:/Program Files/Java/jdk1.6.0_18/jre/lib/security/cacerts"
不同的版本修改方式不一样, 这个实在Tomcat5.5上配置的, Tomcat6不同, 具体信息参看Tomcat的docs。(%tomcat-docs%/ssl-howto.html)
6、说明:
-alias 后面的是证书的别名
-keypass 后面的是整数密码
-keyalg 后面的是使用的加密算法。RSA为非对称加密
OK
CommunityWebServiceImpl的casLogin(ticket)方法设为cas.server