2024年8月19日 星期一

【IT Notes】建立GLPI資產管理網站+配置SSL憑證

 很久之前就架設過GLPI了,當時偷懶沒留下文件,最近需要一個網站來做SSL憑證的測試,並且用Route53來驗證TXT紀錄,今天就回顧一下GLPI的安裝流程,然後最後再來幫它上個https憑證。

一.GLPI安裝流程

1.基本環境建置

\\OS用的是RockyLinux9.3

[root@glpi ~]# dnf -y update
[root@glpi ~]# dnf -y install httpd mariadb-server 
[root@glpi ~]# dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
[root@glpi ~]# dnf -y install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
[root@glpi ~]# dnf -y install yum-utils net-tools vim wget bind-utils 
[root@glpi ~]# dnf module reset php
[root@glpi ~]# dnf module enable php:remi-8.2
[root@glpi ~]# dnf -y install php
[root@glpi ~]# dnf -y install php-{gd,intl,mysqli,ldap,zip,phar,ctype,iconv,mbstring}
[root@glpi ~]# php -m

\\以上是網站架設所需要的httpd 2.4、mariadb 10.5.22和php 8.2

2.安裝網站程式和資料庫

[root@glpi ~]# cd /var/www/html
[root@glpi ~]# wget https://github.com/glpi-project/glpi/releases/download/10.0.16/glpi-10.0.16.tgz
[root@glpi ~]# tar -zxvf glpi-10.0.16.tgz
[root@glpi ~]# rm -rf glpi-10.0.16.tgz
[root@glpi ~]# chown -R apache:apache /var/www/html/glpi
[root@glpi ~]# vim /etc/httpd/conf.d/glpi.conf
<Directory /var/www/html/glpi>
    Order deny,allow
    Allow from all
    AllowOverride All
    Options Indexes FollowSymLinks
    DirectoryIndex index.php
</Directory>
[root@glpi ~]# systemctl restart httpd
[root@glpi ~]# systemctl enable httpd
[root@glpi ~]# systemctl start mariadb
[root@glpi ~]# systemctl enable mariadb
[root@glpi ~]# mysql
\\建立資料庫和使用者
mysql > CREATE DATABASE glpi CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
mysql > GRANT ALL PRIVILEGES ON glpi.* TO 'ocs'@'localhost' IDENTIFIED BY '@WSXcde3$RFV';
mysql > FLUSH PRIVILEGES;  

語言選繁體中文

閱讀條款就直接繼續

首次就選擇「安裝」

有噴一點錯誤,我開了SELinux,就去把它關閉就好了

系統會檢查一切必要的套件,若有缺的就回去再安裝,至於一些安全性建議就看要不要處理,像前面的SELinux關閉後也會在這邊被示警,可以選擇忽略

連線資料庫
資料庫的資訊如前面所設定的:
伺服器:localhost
使用者:ocs
密碼:@WSXcde3$RFV

除非有自己另外建DB,不然連結資料庫就選系統已經安裝好的glpi

資料庫開始初始化

完成初始化後按「繼續」

再按「繼續」

問一堆問題不管它就直接按「繼續」

安裝完成,開始使用

預設的帳密都是glpi,可以進去自己再修改

之前花不少時間研究網站裡面的很多功能,記得有導入Windows AD,還有很多硬軟體的資料,尤其是可以設定一些快到期的軟體發告警,而這次安裝只是要做測試而已,之前的研究內容就等以後有空再補上吧!

二.安裝Certbot,用Letsencrypt產生SSL憑證

這次的lab主要是要做letsencrypt的憑證申請與自動更新,並且要靠Route53做TXT認證,其實這部分才是本章重點。

[root@glpi ~]# sudo dnf update -y
[root@glpi ~]# sudo dnf install epel-release -y
[root@glpi ~]# sudo dnf install certbot -y
[root@glpi ~]# sudo certbot certonly --manual --preferred-challenges=dns -d glpi.lab-iankuo-web.com 
\\certbot指令選擇dns做challenge,domain則是自定義
[root@glpi ~]# sudo dnf install mod_ssl -y  \\安裝apahce的ssl模組

後面的問題都是填y,最後系統會提供一串文字,將這串文字複製

複製文字後,將其貼上到route53指定的子網域下的值,並選擇TXT紀錄

跑一段時間後,紀錄建立起來就ok了


驗證通過後就馬上得到一組crt和key檔,這就是SSL憑證

[root@glpi ~]# vim /etc/httpd/conf.d/ssl.conf  \\設定apache的ssl.conf,並將SSL憑證路徑放在裡面
[root@glpi ~]# systemctl restart httpd  \\重啟網頁伺服器
LoadModule ssl_module modules/mod_ssl.so
Listen *:443 https
<VirtualHost *:443>
    ServerName glpi.lab-iankuo-web.com
    DocumentRoot /var/www/html/glpi/
    ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
<Directory /var/www/html/glpi>
    Order deny,allow
    Allow from all
    AllowOverride All
    Options Indexes FollowSymLinks
    DirectoryIndex index.php
</Directory>
    SSLEngine on
    SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
    SSLHonorCipherOrder on
    SSLCertificateFile /etc/letsencrypt/live/glpi.lab-iankuo-web.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/glpi.lab-iankuo-web.com/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/glpi.lab-iankuo-web.com/chain.pem
</VirtualHost>
設定好了以後就可以在瀏覽器上看到https已經生效,為期3個月

用SSL Checker也可以看到這個domain已經有健康的了


三.補充:Letsencrypt的檔案驗證產出SSL憑證

補充一個不用靠DNS添加紀錄的驗證方式,就是在網站的根目錄上作檔案驗證,不過還是要記得,DNS上還是要有A紀錄存在,因為自動驗證還是要靠外部的訪問來進行,而且一定要對外開放網路訪問80 Port。

指令範例:

[root@glpi ~]# sudo certbot certonly --webroot -w /var/www/html/glpi -d glpi2.lab-iankuo-web.com
[root@glpi ~]# cd /var/www/html/glpi/
[root@glpi ~]# mkdir -p .well-known/acme-challenge/     \\建立系統指定的路徑資料夾
[root@glpi ~]#echo "YbaMVnF3ejDi4JVaQJVJpdKhyVKYPQIspVxcGv_Yqy4" > YbaMVnF3ejDi4JVaQJVJpdKhyVKYPQIspVxcGv_Yqy4   \\把系統給的檔案放在路徑下


輸出指令並驗證成功後,Letsenctypt就會發一個可用的SSL憑證

檔案驗證也是一個很方便取得驗證的方式,有時候不便使用DNS驗證時(例如DNS管理者不是自己的時候),這就是很實用的手法。


1 則留言:

  1. 另外可用於檔案驗證的指令:
    [root@glpi ~]# sudo certbot --manual --preferred-challenges=http certonly

    回覆刪除

【IT Notes】透過api移轉Gmail到Exchange

 在雲端裡面串接api不是一件很好學的技術,第一次有機會學習到將GWS的Gmail信件全部轉移到M365的Exchange,其實方法很多種,像以前用的pst檔匯出轉移的方式等,但透過api串接,可以批次和排程轉移,是非常方便且準確的作法。唯一讓人感到困難的是學習成本不小,通常需要...