2020年3月18日 星期三

CentOS6.3 安裝 Python3.7.7 (快速註記)

本來測試安裝 Python3.8.2,但很3.8.2無法安裝 Pandas,因此退而求其次選擇 3.7.7 

由於未安裝compile工具,從此開始安裝

yum groupinstall "Development tools"
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel

*** 接著一定要記著先裝好 openssl ,否則 pip 不能用,又要重新 build

wget https://www.openssl.org/source/openssl-1.1.1e.tar.gz
tar -xzf openssl-1.1.1e.tar.gz
cd openssl-1.1.1e
./config --prefix=/usr/local/openssl no-zlib
make
make install

放置openssl  lib

mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl/ /usr/include/openssl.bak

ln -s /usr/local/openssl/include/openssl /usr/include/openssl
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl

echo /usr/local/lib >> /etc/ld.so.conf.d/openssl.conf


下載Python 及解壓縮

wget --no-check-certificate https://www.python.org/ftp/python/3.7.7/Python-3.7.7.tgz
tar -xzvf Python-3.7.7.tgz
cd Python-3.7.7

安裝。

./configure --with-openssl=/usr/local/openssl/
make
make install

安裝完畢,執行檔位於 /usr/local/bin 下面, python3 & pip3


2020年3月5日 星期四

使用 letsencrypt 與 Certbot 申請網頁 ssl 憑證

近日透過 nctu.me 免費申請了一個 domain name,想讓家裡的桌機網頁可以透過 https 連線。
於是選擇了 https://letsencrypt.org/zh-tw/ 免費的 ssl 的申請機制。

依照 letsencrypt 官網推薦的方式,使用Certbot 來自動建立憑證。但很不幸的 Certbot 並不支援windows 環境,因此耍了點小手段,先在桌機run了 VM,執行了 CentOS7,然後調整寬頻分享器,先把 CentOS7 的 web server 對應到對外的 web server,如此可以讓 CentOS7 自動建立憑證。完成之後,再把憑證 copy 到桌機的 apache server 來用。

PS : 但原本的自動更新憑證機制,則無法在本機執行,所以憑證僅有3個月效期,之後還是得再透過 VM 來更新。

CentOS 獲得的憑證,權限如下:

drwxr-xr-x /etc/pki/site/certs/
-rw-r--r--. 1 root root 1911 2020-03-04 22:19 cert.pem
-rw-r--r--. 1 root root 1647 2020-03-04 22:19 chain.pem
-rw-r--r--. 1 root root 3558 2020-03-04 22:19 fullchain.pem
-rw-------. 1 root root 1708 2020-03-04 22:19 privkey.pem

若要直接搬移到其他 CentOS機器,請注意 SELinux 的安全性,可能讓 apache server 找不到憑證。若有發生設定正確,卻始終找不到憑證的情況,可以試著設定整個目錄的權限:

restorecon -Rv /etc/pki/site/certs/

接著複製到windows上,將apache server 的設定指向這些憑證,也就成功了。

補充:
要開啟 apache server 的  https service,設定動作如下:

conf/httpd.conf
  打開 mod_ssl.so 與 socache_shmcb_module (與ssl cache有關) 模組
  LoadModule ssl_module modules/mod_ssl.so
  LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

  引入 httpd-ssl.conf,打開下面設定。
  Include conf/extra/httpd-ssl.conf

conf/extra/httpd-ssl.conf
  設定憑證檔還有 Key 的位置
  SSLCertificateFile "D:/Program/Apache24/conf/site/certs/cert.pem"
  SSLCertificateKeyFile "D:/Program/Apache24/conf/site/certs/privkey.pem"

執行 bin/ApacheMonitor.exe
  用監控程式,重新啟動 apache