tomcat ssl構成およびCAS単点ログインの探究


CASワンポイントログインにはtomcat構成ssl認証が必要です.構成方法は以下の通りです.
1,dos tomcatインストールパスに入るbinディレクトリに入り、入力
keytool -genkey -alias   tomcat -keyalg RSA -keypass changeit -storepass changeit -
keystore server.keystore -validity 3600。    bin      
server.keystore
ファイル.Validityは日数を表します.次に名前を記入させますが、実はあなたのサーバーのドメイン名です.注意してください.ここでipを使うのはだめです.サーバーのドメイン名やコンピュータのフルネームを使う必要があります.その他は自由に記入できます.
2、入力を続行
keytool -export -trustcacerts -alias tomcat -file server.cer -keystore  server.keystore -storepass changeit
、証明書をエクスポートするbinの下にserverが生成されます.cerファイル.
証明書があればjdk証明書信頼ライブラリにインポートし、入力を続行する必要があります.
keytool -import -trustcacerts -alias tomcat -file server.cer -keystore  %JAVA_HOME%/jre/lib/security/cacerts -storepass changeit
.つまりcacertsにこのような証明書を追加するには、keytool-list-v-keystore D:/sdks/jdk 1という証明書信頼リストを次のコマンドで得ることができます.5.0_11/jre/lib/security/cacerts.注意してください.私たちは一般的にjdkをC:Program Filesjavaの下に置いています.試してみましたが、スペースがあるせいか、私のは直接cディスクの下のjavaフォルダに置いています.もちろん、インポートした証明書、コマンドを削除することもできます.
keytool -delete -alias tomcatsso -keystore cacerts -keypass changeit
ヒントパスワードのデフォルトはchangeitです.
3,最後にtomca confの下のserverを修正する.xml.その中には次のようなシールドコードがあります.
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"   
               maxThreads="150" scheme="https" secure="true"   
               clientAuth="false" sslProtocol="TLS" />

次のように変更します.
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" 
                keystorePass="changeit" keystoreFile="D:\apache-tomcat-6.0.26\bin\server.keystore"
			   />
ここで注意しているのはkeystoreFileがさっき生成したserverです.keystore.またprotocolはHttp 11 Protocolに変更する必要があります.そうしないと、間違いを報告します(ネット上には変更されていないものもありますが、私のところを変更しないでください.変更すればいいです).
4、最終起動https://localhost:8443/ブラウザのアドレスバーに警告ウィンドウが表示され、ssl構成が成功したことを示します.
5、次にcasを必要とするサーバとクライアントのダウンロードアドレスはそれぞれ:
     http://www.ja-sig.org/downloads/cas/cas-server-3.1.1-release.zip
http://www.ja-sig.org/downloads/cas-clients/cas-client-java-2.1.1.zip
serverパッケージを解凍しmodulesフォルダのcas-server-webapp-3.1.1.warはcasと名前を変えた.warをtomcatの下に入れ、ブラウズを開始するとserverのインタフェースが表示され、導入に成功します.
一般的にアカウントパスワードをデータベースに配置する場合は、webinfの下にあるdeployerConfigContextファイルでデータソースを構成する必要があります.
 
 <bean id="casDataSource" class="org.apache.commons.dbcp.BasicDataSource">
     <property name="driverClassName">
          <value>com.mysql.jdbc.Driver</value>
     </property>
     <property name="url">
          <value>jdbc:mysql://localhost:3306/test??useUnicode=true&amp;characterEncoding=utf8</value>
     </property>
     <property name="username">
          <value>root</value>
     </property>
     <property name="password">
          <value>root</value>
     </property>
</bean>
は明らかにspring実装です.
AuthenticationHandlerは重要な概念であり、処理を検証する方法を示しています.デフォルトではS i m p l e T e s t U s e r m e P a s s s s s w o r d AuthenticationHandlerを使用しています.この注入されたクラスを変更することができます.例えば、Qu e r y DatabaseAuthenticationHandlerやS e a r c h M o d e S earchDatabaseAuthenticationHandlerなどです.前者はsqlでクエリーできますが、後者は次のようになります.
<bean id="SearchModeSearchDatabaseAuthenticationHandler" class="org.jasig.cas.adaptors.jdbc.SearchModeSearchDatabaseAuthenticationHandler"
                      abstract="false" lazy-init="default"   autowire="default" dependency-check="default">
					    <property  name="tableUsers">
                              <value>userinfo</value>
                        </property>
                        <property name="fieldUser">
                              <value>userName</value>
                        </property>
                        <property name="fieldPassword">
                              <value>password</value>
                        </property>
                        <property name="dataSource" ref="casDataSource" />
               </bean>
は、テーブルとテーブル内のアカウントパスワードを表すフィールドを与え、一致させる.この時点で起動し、アカウントのパスワードを入力すると、成功または失敗を示すことができます.
6、クライアントプログラム(java web)、あなたはwebを必要とします.xmlは以下のように構成されています.
<filter>

		<filter-name>CAS Filter</filter-name>

		<filter-class>
			edu.yale.its.tp.cas.client.filter.CASFilter
		</filter-class>

		<init-param>

			<param-name>
				edu.yale.its.tp.cas.client.filter.loginUrl
			</param-name>

			<param-value>https://casserver:8443/cas/login</param-value>

		</init-param>

		<init-param>

			<param-name>
				edu.yale.its.tp.cas.client.filter.validateUrl
			</param-name>

			<param-value>
				https:// casserver:8443/cas/serviceValidate
			</param-value>

		</init-param>

		<init-param>

			<param-name>
				edu.yale.its.tp.cas.client.filter.serverName
			</param-name>

			<param-value>computerTest:8080</param-value>

		</init-param>

		<init-param>

			<param-name>
				edu.yale.its.tp.cas.client.filter.wrapRequest
			</param-name>

			<param-value>true</param-value>

		</init-param>

	</filter>

	<filter-mapping>

		<filter-name>CAS Filter</filter-name>

		<url-pattern>/test/*</url-pattern>

	</filter-mapping>
Casserverは、サーバプログラムのコンピュータ名またはドメイン名を表します.
computerTestはクライアントプログラムのコンピュータ名またはドメイン名を表す.上のはcasサーバを表します.明らかにcasはフィルタを通じてあなたのリソースを保護しています.
          7,
一般的には、継承する必要があるシステムが1つのサーバにあることはほとんど保証できません.複数のマシンに分布するプロジェクトについては、casサーバがあるマシンがコンピュータ名(またはドメイン名でアクセスできること)を保証しなければなりません(できない場合は、ローカルエリアネットワーク内でコンピュータ名でアクセスできない解決策を参照してください.doc).二つ目は、クライアントサーバ(tomcat)においてもsslを構成する必要がある.構成方法は、上記で生成した証明書をjdkにインポートし、casサーバとssl握手を行うことである.握手方式は以下の通りである:java InstallCert casserver:8443、次の選択項目に1を入力し、完了する.
以上は今日の研究の成果で、特に配置の时は人を狂わせる感じがして、少し乱れている感じがしますが、この手順でやると、きっと大丈夫です.
By阿飛哥転載説明してください
テンセント微博:
http://t.qq.com/duyunfeiRoom
新浪微博:
http://weibo.com/u/1766094735