免費SSL

何謂SSL

為了讓使用者於瀏覽網頁時安全地傳輸資料,特別是具備後台管理或輸入個人機敏資料的網站,應該使用網站資料傳輸加密協定(如HTTPS),透過SSL憑證加密後讓資料傳輸更安全,並且若網站升級採用新一代的HTTP/2的網頁傳輸協定,其先決條件就是必須使用HTTPS加密。

一般而言要使用加密傳輸,若不是使用系統自發憑證(使用Chrome瀏覽器閱讀時會出現「不安全的憑證」),便需要向第三方以支付年費方式購買SSL憑證,本說明將提供於伺服器上安裝免費的憑證(以Let’s Encrypt為例)教學文件,為大家的網頁傳輸加密。          資料參考:師大資訊中心

申請及使用

Let’s Encrypt是由各大非營利團體為了推廣 HTTPS 而推出免費 SSL/TLS憑證服務,每次申請有效期為3個月,並可設定自動更新憑證。

我是主機的擁有者,所以選擇安裝Certbot軟體。

1.選擇 apache+Linux(snap)

2.ssh登入主機安裝snapd

sudo apt update
sudo snap install --class certbot

3.Prepare the Certbot command

sudo ln -s /snap/bin/certbot /usr/bin/certbot

4.Choose how you’d like to run Certbot

sudo certbot --apache

5.Test automatic renewal

sudo certbot renew --dry-run

後記:

安裝後運動程式會有問題,必須下判斷式去判斷。

發現網站加了SSL後,運動網站有點問題。
目前解決方式:
/include/config.php
加上判斷
//URL
if($_SERVER["HTTP_HOST"]=="wwesbake.idv.tw"){
   define('ROOT_URL' , "https://". $_SERVER["HTTP_HOST"] ."/$web_name/") ; 
}else{
   define('ROOT_URL' , "http://". $_SERVER["HTTP_HOST"] ."/$web_name/") ;
}

除了要加判斷式之外,登入時轉址還會出現錯誤。檔案在:/var/log/apache2 的 error.log檔

造成網頁出不來,移除Certbot,卻出現無法執行apache2的情形。

重裝apache2連帶影響php5.5,到我的google網站去看教學。安裝了php5,只有裝部份的php5模組,真是糟糕!爬一爬文章,再加上自己的判斷,終於是在10/13晚上裝好了,可是自己的網站還是不行。不過,phpmyadmin竟然可以跑,心比較平靜一點,因為資料還在就好。抱著忐忑的心去睡覺吧!

早上(10/14)起床,突然想一想應該是php.ini設定的問題。果然是

Short_open_tag 要設定on
display_errors 設定on
php.ini 檔案位置

設定好就可以執行了。

Pear 安裝 DB套件

主機  Ubutu 14.04.06 + PHP5.5

下 pear list 指令  

沒有安裝DB套件

先升級 pear 

pear  install  PEAR-1.10.10

再安裝 DB套件

pear install DB

就有DB的套件了

引入 DB

require “DB.php”;

連接mysql資料庫

$dsn = "mysql://{$mysql_user}:{$mysql_pass}@{$mysql_host}/{$db_name}";
$dbCon = DB::connect($dsn);
$sqlstr=" select * from gov ";
$sth = $dbCon->query($sqlstr);

三種取值方法

Method-1
$row = $sth->fetchRow(DB_FETCHMODE_ASSOC);
print "first".$row[gov_code]."-".$row[login_pass]."
";

Method-2
$row1 = $sth->fetchRow(DB_FETCHMODE_OBJECT);
print "second".$row1->gov_code."-".$row1->login_pass."
";

Method-3
$row2 = $sth->fetchRow();
print "third".show_array($row2)."
";

設定中文編碼UTF8

$dbCon->query('SET NAMES utf8');