環境要求

jdk-11
apache-maven-3.5.2
apache-tomcat-9.0.17

install openjdk

sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt update
sudo apt install openjdk-11-jdk
java -version #看一下版本跟有無安裝成功

install tomcat

Create Tomcat User

sudo groupadd tomcat #創建一個 tomcat 群組
sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat #創建一個較 tomcat 的使用者,並加入 tomcat 群組

install tomcat

cd /tmp
curl -O http://ftp.mirror.tw/pub/apache/tomcat/tomcat-9/v9.0.17/bin/apache-tomcat-9.0.17.tar.gz
sudo mkdir /opt/tomcat
sudo tar xzvf apache-tomcat-9*tar.gz -C /opt/tomcat --strip-components=1

update Premission

cd /opt/tomcat
sudo chgrp -R tomcat /opt/tomcat
sudo chmod -R g+r conf
sudo chmod g+x conf
sudo chown -R tomcat webapps/ work/ temp/ logs/

create tomcat service file

把底下的內容寫到 /etc/systemd/system/tomcat.service

[Unit]
Description=Apache Tomcat Web Application Container
After=network.target

[Service]
Type=forking

Environment=JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64 #這邊要填你 java 的路徑 可以用 sudo update-java-alternatives -l 看一下
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'

ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh

User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload  #重新載入服務
sudo systemctl start tomcat   #開啟 tomcat
sudo systemctl status tomcat  #查看 tomcat 的狀態

成功後到你的 ip位址:8080 應該可以看到以下畫面

生成 keystore

有興趣的可以看下這篇文章 keystore 介绍

Keytool 是一个有效的安全鑰匙和證書的管理工具.

执行命令:
keytool -genkey -alias "你要的別名" -keyalg RSA -keystore server.keystore

按照提示来:
Enter keystore password: // 輸入 keystore 密碼: 123456,密碼最好使用 changeit
What is your first and last name?
  [Unknown]:             // 輸入域名,如 www.sleepycookie.com, 注意這裡不要寫 IP 地址
What is the name of your organizational unit?
  [Unknown]:             // 輸入單位名稱 sleepycookie
What is the name of your organization?
  [Unknown]:             // 輸入組織名稱 sleepycookie
What is the name of your City or Locality?
  [Unknown]:             // 輸入城市或區域名稱
What is the name of your State or Province?
  [Unknown]:             // 輸入州或省份名稱 keelung
What is the two-letter country code for this unit?
  [Unknown]:             // 輸入單位所在國家的兩個字母國家代碼 TW

Is CN=www.sleepycookie.com, OU=sleepycookie, O=sleepycookie, L=keelung, ST=keelung, C=TW correct?
  [no]:                  // 檢查填寫的信息, 如果對了, 輸入 yes 並按下 Enter

// 在當前的目錄下可以找到一個新生成的文件: server.keystore

一般 keystore password 都是用 “changeit”

在當前目錄會看到一個 server.keystore 的檔案,把它複製到 tomcat_HOME/keystore 底下

接著添加 tomcat_HOME/conf/server.xml 的內容

<Connector port="8443"
           minSpareThreads="5"
           maxSpareThreads="75"
           enableLookups="true"
           disableUploadTimeout="true"
           acceptCount="100"
           maxThreads="200"
           scheme="https"
           secure="true"
           SSLEnabled="true"
           clientAuth="false"
           sslProtocol="TLS"
           keystoreFile="keystore/server.keystore" <!-- 你的 keystore 檔案位置 -->
           keystorePass="你的 keystore password"
/>

重啟服務 sudo systemctl restart tomcat.service

使用 cas-overlay-template

cas-overlay-template 的 github

git clone -b {{你要的版本} https://github.com/apereo/cas-overlay-template.git
cd cas-overlay-template
sudo ./gradlew clean build

找到 ./build/libs/cas.war 並把他複製到 tomcat_HOME/webapps 底下

接著到架設的的 IP 就可以看到一下的畫面

恭喜你成功了!!! 帳號密碼可以到底下的檔案去查看 tomcat_HOME/webapps/cas/WEB-INF/claasses/application.properties

參考資料

安装 CAS-Server