Tag: ssl

Connection could not be established with host

Posted by – July 19, 2016

最近重灌了工作用的筆電,把開發環境的 PHP 升級到 5.6.10,然後就各種狀況.....

其中一個問題是從本機連不上公司 mail server,所以寄信功能就掛掉了。Laravel log 的訊息如下

local.ERROR: 500 - Connection could not be established with host xxx.com.tw [ #0] @ /
exception 'Swift_TransportException' with message 'Connection could not be established with host xxx.com.tw [ #0]' in laravel/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php:270

原來是因為從 PHP 5.6 開始,變更了 SSL 認證的預設值,verify_peer 與 verify_peer_name 這兩項安全檢查都被改為預設,然後很多 SSL verification 就過不了。雖然提高安全性是好事,但開發環境卻造成一些困擾。

以上述的 swiftmailer 套件為例,它的 SSL 連線是用 stream_socket_client 實現的,其參數設置是透過 stream_context_create 傳入,所以設定方式如下:

$contextOptions = [
    'ssl' => [
        'verify_peer' => false,
        'verify_peer_name' => false
    ]
];
$context = stream_context_create($contextOptions);
stream_socket_client(
    $host.':'.$port, 
    $errno, 
    $errstr, 
    $timeout, 
    STREAM_CLIENT_CONNECT, 
    $context
);

如此一來就可以關閉檢查,終於可以連上 mail server 了。收工。

更新 Let’s Encrypt 憑證

Posted by – February 19, 2016

先隨手筆記一下,幾個月前在自己的主機上安裝了 Let's Encrypt 的 SSL 憑證。他們家的憑證每隔一陣子就要 update 一次。

Let’s-Encrypt

紀錄一下更新的步驟:

$ service httpd stop # 停用原本的 http server

$ cd /xxx # 切換到 lets encrypt 所在的路徑

$ ./letsencrypt-auto certonly -t -d your.domain.com -m user@email.com --renew-by-default --agree-tos --agree-dev-preview

紅字部分請自行取代。如果有出現以下訊息,可以輸入 2

How would you like to authenticate with the Let's Encrypt CA?
-------------------------------------------------------------------------------
1: Apache Web Server - Alpha (apache)
2: Automatically use a temporary webserver (standalone)
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

跑完後記得重啟 http server,收工。

RapidSSL Certificate Not Trusted on Mobile Device

Posted by – February 19, 2014

之前提到 Mac OS 上怎麼裝 SSL 時,有提到 RapidSSL 這家平價的憑證服務商,因為推薦了不少客戶買這家的憑證,所以碰到問題時也收到不少 抱怨 回饋。

最近幫客戶開發了一套適用 desktop, tablet, phone 的 resposive 網站,並導入了 HTTPS 全站加密傳輸。不過在某些情況下會出現憑證不被信任的情況。經過一番測試才發現好像在手機上比較常發生,尤其是 Google Chrome 瀏覽器。

rapidssl_not_trusted

More

Force SSL/https using mod_rewrite or PHP

Posted by – January 17, 2014

工作需求,要幫某網站全部轉為 HTTPS 加密傳輸。

有兩種方法,一是透過 .htaccess,二是用 PHP 來處理。

用 .htaccess 處理的方式如下

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

用 PHP 來處理:

if (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] !== 'on') {
    if(!headers_sent()) {
        header("Status: 301 Moved Permanently");
        header(sprintf(
            'Location: https://%s%s',
            $_SERVER['HTTP_HOST'],
            $_SERVER['REQUEST_URI']
        ));
        exit();
    }
}

個人比較偏好用 .htaccess 來處理。不過若是沒有全部頁面都需要的話,PHP 比較方便。

 

[unfinished] CentOS Server Git Setup

Posted by – September 26, 2012

http://cse.csusb.edu/turner/wiki/CentOS_Server_Git_Setup

http://netlog.jpn.org/r271-635/2008/01/apache_ssl_on_fedora_8_1.html

http://memo-off.blogspot.tw/2012/03/centosgit.html

http://www.bluevariant.com/2012/05/comprehensive-guide-git-gitolite-synology-diskstation/

 

 

Enabling SSL on MAMP on OS X

Posted by – June 19, 2012

我習慣在本機上開發程式,做完初步測試後才會佈署到測試主機或正式主機。為此,有些要求使用 https 安全連線的頁面在本機就無法進入,所以才興起了在本機簽署一個憑證作為開發之用的念頭。因為步驟還蠻長的,做個筆記給未來的自己。

More