tomcat ssl構成およびCAS単点ログインの探究
7282 ワード
CASワンポイントログインにはtomcat構成ssl認証が必要です.構成方法は以下の通りです.
1,dos tomcatインストールパスに入るbinディレクトリに入り、入力
2、入力を続行
証明書があればjdk証明書信頼ライブラリにインポートし、入力を続行する必要があります.
3,最後にtomca confの下のserverを修正する.xml.その中には次のようなシールドコードがあります.
次のように変更します.
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ファイルでデータソースを構成する必要があります.
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でクエリーできますが、後者は次のようになります.
6、クライアントプログラム(java web)、あなたはwebを必要とします.xmlは以下のように構成されています.
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
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&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