linux 下nginx 集群CAS單點登錄實現


1.單點登錄服務器CAS應用配置於tomcat下。

  1)key生成: 

         keytool -genkey -alias mycas -keyalg RSA -keysize 2048 -keystore /mnt/disk1/keys/mycas.keystore

         keytool -export -file /mnt/disk1/keys/mycas.crt -alias mycas -keystore /mnt/disk1/keys/mycas.keystore

  2)CAS發布tomcat中server.xml中配置

 <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" 
        keystoreFile="/mnt/disk1/keys/mycas.keystore" keystorePass="123456" />

  3)如果不使用集群,通過java端通過CAS client直接連接此CAS服務器,則需要在jdk中導入相應的證書文件:  

          keytool -delete -alias mycas -keystore /usr/local/jdk/jre/lib/security/cacerts                                                  //刪除證書 
          keytool -import -keystore /usr/local/jdk/jre/lib/security/cacerts -file /mnt/disk1/keys/mycas.crt -alias myca    //導入證書

2.nginx負載多個tomcat

  1)nginx ssl證書生成   

      cd /mnt/disk1/nginxkeys 進入證書存儲文件夾
    openssl genrsa -des3 -out server.key 1024          創建服務器私鑰
    openssl req -new -key server.key -out server.csr        創建證書簽名請求(CSR)

    [   

      Country Name (2 letter code) [GB]:CN
      State or Province Name (full name) [Berkshire]:BJ
      Locality Name (eg, city) [Newbury]:BJ
          Organization Name (eg, company) [My Company Ltd]:test
      Organizational Unit Name (eg, section) []:test
      Common Name (eg, your name or your server's hostname) []:cas112.test.com(在使用casclient時候必須在這里填入域名,否則報錯)
      Email Address []:l@test.com

    ]
    cp server.key server.key.org                  在加載SSL支持的Nginx並使用上述私鑰時除去必須的口令
    openssl rsa -in server.key.org -out server.key           在加載SSL支持的Nginx並使用上述私鑰時除去必須的口令           
    openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt    使用上述私鑰導出CSR,CRT簽名證書: 

  2)nginx https接口配置

    upstream cas_server_ssl {
                #ip_hash;  
                server localhost:8443;
        }
    server { 
      listen 443;
      server_name  localhost; 
      ssl on; 
      ssl_certificate /mnt/disk1/nginx_keys/server.crt; 
      ssl_certificate_key  /mnt/disk1/nginx_keys/server.key; 
      location / {
            root   html;
            index  index.html index.htm;
            proxy_redirect off;  
            proxy_set_header Host $host;  
            proxy_set_header X-Real-IP $remote_addr;  
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass https://cas_server_ssl;
          }
    }

3.客戶端配置

  同跟不使用nginx集群配置類似,將server.crt導入客戶端jdk。

  keytool -delete -alias nginx_cas_crt -keystore /usr/local/jdk/jre/lib/security/cacerts                                                   //刪除證書 
     keytool -import -keystore "$JAVA_HOME/jre/lib/security/cacerts" -file /mnt/disk1/nginx_keys/server.crt -alias nginx_cas_crt     //導入證書


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM