さくらVPS + CentOS FujiSSLのインストール

SSLサーバ証明書には、さまざまな種類があり、よく使わているのが「ベリサイン」や「グローバルサイン」ではないかと思います。

しかし価格が高く手が出せないという人のために、安くて評判が良くもっとも手軽なSSLFujiSSL」の購入、インストール手順です。

※今までは「Rapid SSL」もありましたが、2018年10月23日に安定版がリリースされる予定のChrome 70では、シマンテックCAが発行したすべての証明書は無効となり「Rapid SSL」は無効となってしまいます。「Rapid SSL」をお使いの場合は「FujiSSL」へ移行してみてはいかがでしょうか。


SSL証明書の購入

FujiSSL」で購入できます。

購入時、CSRが必要になりまが、「FujiSSL」サイトの無料ツール「CSR・秘密鍵作成」から作成できます。
購入が完了し、メール認証後、SSLサーバー証明書・中間CA証明書がメールで送られてきます。


SSL証明書のインストール

mod_ssl のインストール。

# yum -y install mod_ssl

秘密鍵をサーバーに設置する。

# cd /etc/httpd/conf
# mkdir ssl
# cd ssl
# vi server.key
(FujiSSL無料ツール「CSR・秘密鍵作成」で作成した秘密鍵をコピペする)

CSRをサーバーに設置する。

# vi server.csr
(FujiSSL無料ツール「CSR・秘密鍵作成」で作成したCSRをコピペする)

SSLサーバー証明書をサーバーに設置する。

# vi server.crt
(メールで送られてきたSSLサーバー証明書をコピペする)

中間CA証明書をサーバーに設置する。

# vi ca-bundle.ca
(メールで送られてきた中間CA証明書をコピペする)

このままだと Apache を起動するたびにパスフレーズを聞かれるので、パスフレーズ応答を削除する。

# openssl rsa -in server.key -out server.key
Enter pass phrase for server.key: (←FujiSSLお申込みフォームで入力した秘密鍵のパスワードを入力)
writing RSA key

ssl.confを編集する。

# vi /etc/httpd/conf.d/ssl.conf
DocumentRoot "/var/www/html"
ServerName www.example.com:443

SSLCertificateFile /etc/httpd/conf/ssl/server.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl/server.key
SSLCACertificateFile /etc/httpd/conf/ssl/ca-bundle.ca

Apacheを再起動する。

# /etc/rc.d/init.d/httpd restart

HTTPSへアクセスし証明書情報が正しいか確認してください。

Raspberry Piで温湿度センサー(DHT22/AM2302)から温度と湿度を取得する方法

今回は、Raspberry Piで温湿度センサー(DHT22/AM2302)を使って温度と湿度を取得してみようと思います。


1.配線
AM2302 Product Manual

Pin Raspberry Pi DHT22
1 3.3v P1 VDD
2 GPIO4 P7 SDA
3 NC Empty
4 GND P6 GND


2.必要なPythonのパッケージをインストー

sudo apt-get update
sudo apt-get install build-essential python-dev


3.AdafruitのDHTライブラリをインストー

git clone https://github.com/adafruit/Adafruit_Python_DHT.git

cd Adafruit_Python_DHT
sudo python setup.py install


4.実行

cd examples 
## sudo python ./AdafruitDHT.py {デバイスの種類} {GPIO番号} ※AdafruitDHT.pyを読むと説明が書いてあります。
sudo python ./AdafruitDHT.py 2302 4

##実行結果
Temp=30.6* Humidity=71.1%

DHT11より正確です。実際に温度と湿度を取得したい場合は、DHT11ではなくDHT22をおすすめします。
さて、これで何作ろうかな。

先月読んだ本 2016.12

 

SE神谷翔のサイバー事件簿 (幻冬舎文庫)
 

 

王様達のヴァイキング 11 (ビッグコミックス)

王様達のヴァイキング 11 (ビッグコミックス)

 

 

Raspberry Piで温湿度センサー(DHT11)から温度と湿度を取得する方法

今回は、Raspberry Piで温湿度センサー(DHT11)を使って温度と湿度を取得してみようと思います。

ちなみに、DHT11は温度と湿度を同時に測定する複合センサーモジュールです。分解能は湿度:1%、温度:1℃と細かい値は取得できません。


1.配線

Raspberry Pi DHT11
3.3v P1 VCC
GND P6 GND
GPIO4 P7 DATA

f:id:fuminori14:20161115112009p:plain


2.wiringPiをインストール

git clone git://git.drogon.net/wiringPi
cd wiringPi
./build


3.プログラムをコンパイル
温度・湿度の読み取りはこちらのサンプルプログラムを使いました。

gcc -o dht11 dht11.c -L/usr/local/lib -lwiringPi


4.実行

sudo ./dht11

f:id:fuminori14:20131208114202j:plain


精度はあまりよくないため、学習目的で使用するのはいいと思いますが、実際に温度と湿度を取得したい場合は、DHT22かSHT-11をおすすめします。

先月読んだ本 2016.9

 

王様達のヴァイキング(10) (ビッグコミックス)

王様達のヴァイキング(10) (ビッグコミックス)

 

 

 

PHPでiPhoneとAndroidのOSバージョンを取得

WEBサイトにアクセスする利用者の情報をユーザーエージェントから調べることが出来ます。今回はユーザーエージェントからiPhoneAndroidのOSのバージョンを取得します。



<?php
    print_r(osVersion());

    /**
     *  ユーザーエージェント取得
     *
     */
    function ua()
    {
        return isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '';
    }

    /**
     * Android端末判定
     *
     */
    function is_android () {
        $useragents = array(
          'Android'        // Android
        );
        $pattern = '/'.implode('|', $useragents).'/i';

        if (!preg_match($pattern, $_SERVER['HTTP_USER_AGENT'])) {
            return false;
        }

        return true;
    }

    /**
     * iPhone端末判定
     *
     */
    function is_iphone () {
        $useragents = array(
          'iPhone'        // iPhone
        );
        $pattern = '/'.implode('|', $useragents).'/i';

        if (!preg_match($pattern, $_SERVER['HTTP_USER_AGENT'])) {
            return false;
        }

        return true;
    }

    /**
     * OSバージョン取得
     *
     */
    function osVersion()
    {
        $version = null;

        //Android端末
        if (is_android()) {
            if (preg_match('/Android ([0-9\.]+)/', ua(), $matches)) {
                $version = $matches;
            }
        }

        //iPhone端末
        if (is_iphone()) {
            if (preg_match('/iPhone OS ([0-9_]+)/', ua(), $matches)) {
                $matches[1] = str_replace('_', ',', $matches[1]);            
                $version = $matches;
            }
        }

        return $version;
    }
?>

●実行結果
・iPhoneの場合
Array
(
    [0] => iPhone OS 9_1
    [1] => 9.1
)

・Androidの場合
Array
(
    [0] => Android 5.1.1
    [1] => 5.1.1
)



OSバージョンが高いか低いかを判定するときに便利ですね。


先月読んだ本 2016.5

 

イーロン・マスク 未来を創る男

イーロン・マスク 未来を創る男

 

 マスクにとってはワークかライフか、などという分け方はありえない。すべてひっくるめて「ライフ」なのである。

 マスクは、世界屈指の経営者、イノベーターになるにはチャンスを自らの手で切り開いた。2025年までにテスラは5~6種類のモデルを取りそろえ、活況を呈する電気自動車市場で中心的な役割をはたしているだろう。

 ピーター・ティールが言うように、マスクは人々に希望を与え、人類への貢献という意味でテクノロジーへの信頼を取り戻すだろう。