2017年12月14日木曜日

SSL CT技術(Certificate Transparency)

詳細をみると、「このウェブサイトの識別情報が Let’s Encrypt Authority X1 によって確認されました。証明書の透明性に関する情報がサーバーから提供されませんでした。」となっています。
TUI6
これは証明書がCT技術(Certificate Transparency)に対応していないためです。
調べてみると、Let’s Encryptのapacheプラグインの場合、まだCT機能までが盛り込まれていないようです。
参考:https://community.letsencrypt.org/t/will-you-support-certificate-transparency/222/4
Nginxの場合はnginx-ctを利用して、ソースインストールしたNginxにLet’s Encryptの –nginxプラグインを利用することで、簡単にCT導入もできる模様です。今すぐ、Let’s Encryptの証明書を利用してサイト運営するなら、このパターンでしょう。
今後のリリースに大いに期待です。


設定資料
  • nginxにnginx-ctプラグインをインストール
  • ct-submitコマンドの取得とビルド
  • CT情報の登録とSCTの取得
まずはnginxにnginx-ctプラグインをインストールします。
nginxのプラグインは動的に追加できないので、nginxをソースから再設定・リビルドする必要があります。
# nginx-ctプラグインのダウンロード
cd /tmp
wget https://github.com/grahamedgecombe/nginx-ct/archive/master.zip
unzip master.zip

# nginx-ctプラグインを有効化してNginxを再ビルド (OpenSSL 1.0.2以降も必要)
cd /usr/local/src/nginx-1.9.3
./configure --add-module=/tmp/nginx-ct-master --with-http_ssl_module 
--with-openssl=/usr/local/src/openssl-1.0.2d
make clean
make
sudo make install
次に、透かし入り証明書情報(Certificate Transparency)をサーバに登録・取得するためのコマンド、ct-submitをインストールします。
ビルドのためにGoも必要です。
cd /tmp
wget https://github.com/grahamedgecombe/ct-submit/archive/master.zip
unzip master.zip
cd ct-submit-master
go build
sudo install -s -m755 ./ct-submit-master /usr/local/bin/ct-submit
今度はct-submitコマンドを使って、X509証明書情報をCTログサーバに送信します。
※スクリプト先頭部分のKEY, CTSUBMIT, SCTS_DIR, $SCTS_DIRの許可件等は
適切に調整して下さい。
(一部のサーバからはエラーが返ってきたのでコメントアウトしました)
ct-submit.sh
#!/bin/sh
# Let's encryptから入手した fullchain.pem の場所
KEY=/etc/letsencrypt/live/shield.jp/fullchain.pem
# CT情報の保存先
SCTS_DIR=/etc/letsencrypt/live/shield.jp/scts
# ct-submitコマンド
CTSUBMIT=/usr/local/bin/ct-submit

echo 1
sudo sh -c "$CTSUBMIT ct.googleapis.com/aviator \
<$KEY \
>$SCTS_DIR/aviator.sct"
echo 2
sudo sh -c "$CTSUBMIT ct.googleapis.com/pilot \
<$KEY \
>$SCTS_DIR/pilot.sct"
echo 3
sudo sh -c "$CTSUBMIT ct.googleapis.com/rocketeer \
<$KEY \
>$SCTS_DIR/rocketeer.sct"
#echo 4
#sudo sh -c "$CTSUBMIT ct1.digicert-ct.com/log \
#<$KEY \
#>$SCTS_DIR/digicert.sct"
#echo 5
#sudo sh -c "$CTSUBMIT ct.izenpe.com \
#<$KEY \
#>$SCTS_DIR/izenpe.sct"
#echo 6
#sudo sh -c "$CTSUBMIT log.certly.io \
#<$KEY \
#>$SCTS_DIR/certly.sct"
指定したディレクトリにSCTファイルが出力されているか確認しましょう。
(SCT = Signed Certificate Timestamp:登録済み証明書タイムスタンプ)
sudo ls -al /etc/letsencrypt/live/shield.jp/scts
total 20
drwxr-xr-x 2 root root 4096 Nov 12 16:54 .
drwxr-xr-x 3 root root 4096 Nov 12 17:46 ..
-rw-r--r-- 1 root root  118 Nov 12 16:54 aviator.sct
-rw-r--r-- 1 root root  119 Nov 12 16:54 pilot.sct
-rw-r--r-- 1 root root  118 Nov 12 16:54 rocketeer.sct
以上で完了です。
あとはnginxを再起動してから、ChromeでHTTPSのURLにアクセスし、アドレスパーの緑の部分をクリックして確認しましょう。
以下のように、サーバからCT情報が提供されたということが表示されればOKです。
CT Provided

設定例

nginx.conf
  # nginx-ctプラグインを有効にしていないとエラーになります
  ssl_ct on;
  ssl_ct_static_scts /etc/letsencrypt/live/shield.jp/scts;

参考

Certificate Transparentのログサーバの一覧はどこから手に入る?
http://esupport.trendmicro.com/media/13357571/CT%20FAQ.pdf
答: 以下から入手可能。
http://www.certificate-transparency.org/known-logs



最後に

改めてnginx.confの設定内容です。少しずつ紹介した項目をひとまとめにしました。
nginx.conf
    #
    # HTTPS server
    #
    server {

      listen       443 ssl http2; # HTTP/2パッチを当てているため。
通常は http2 は不要
      server_name  shield.jp;

      ssl_certificate /etc/letsencrypt/live/shield.jp/fullchain.pem;
      ssl_certificate_key /etc/letsencrypt/live/shield.jp/privkey.pem;

      ssl_session_cache   shared:SSL:3m;
      ssl_buffer_size     8k;
      ssl_session_timeout 10m;

      # 1. 暗号方式の設定
      # (デフォルト) ssl_ciphers  HIGH:!aNULL:!MD5;
      ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-
RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-
RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:
DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:
AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!
EXPORT:!DES:!MD5:!PSK:!RC4";
      ssl_prefer_server_ciphers  on;

      # 2. Logjam攻撃対策
      ssl_dhparam /etc/ssl/private/dhparam_4096.pem;

      # 3. Enable OCSP (Online Certificate Status Protocol) Stapling
      ssl_stapling on;
      ssl_stapling_verify on;
      resolver 8.8.4.4 8.8.8.8 valid=300s;
      resolver_timeout 10s;

      # 4. Enable HSTS (HTTP Strict Transport Security)
      add_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload";

      # 5. HPKP Settings
      add_header Public-Key-Pins 'pin-sha256="YLh1dUR9y6Kja30RrAn7JKnbQG/uEtLMkBgFF2Fuihg=";  
pin-sha256="GO8LTsdpBf/sLaUQ3/NPVCaGzZOmku+6iIBdeef9K2k="; max-age=2592000; includeSubDomains';

      # 6.証明書透かし (Certificate Transparency)設定
      ssl_ct on;
      ssl_ct_static_scts /etc/letsencrypt/live/shield.jp/scts;

      # 後略
}

2017年6月25日日曜日

2017年6月23日金曜日

WEBアクセシビリティの重要性

ホームページ公開時にアクセシビリティチェックはされていますか?
日本WEBアクセシビリティ協会
や現在、無料でできる HARETTA(ハレッタ)は、入力したURLのアクセシビリティ適合度を
チェックするサイトを一度お試しください。



2017年6月6日火曜日

Let's Encrypt によるサービス障害の報告

日本時間で 5月19日 15時52分~ 5月21日 15時40分 の約2日間において、
Let's Encrypt サービスサーバにおいて世界的なサービス障害が発生していました。

Let's Encrypt によるサービス障害の報告
https://letsencrypt.status.io/pages/incident/55957a99e800baa4470002da/591e962c4f9ef22239001819

その発生タイミングに該当しておられる自動更新設定は今一度ご確認を。
設定の不備やご利用サーバやネットワークのトラブルではないと推測されますが
今回の経験により下記のように改善いたしました。

  1. 更新スクリプトを実行するのは毎週でもよい。
(SSL証明書がまだ新しい場合はスキップ処理される)
 2.管理系のスクリプトは利用者への影響の少ない夜間に設定しておくことが一般的。
  

2017年4月24日月曜日

SEOにこだわっても成果は出ない




 本日、興味深いメールが届きました。

SEOとは、検索結果の上位表示させる為の施策なのですが
そのSEOにこだわる人ほど、成果が出ていない傾向があるわけです。

なぜでしょうか。

検索結果の上位に表示されればそれだけアクセスが増え、
売上も上がりやすくなるはずです。

しかし、結果はその正反対なわけです。

例えば、SEOにこだわる人は、
h1meta descriptionにキーワードを入れるとか、
パンくずやサイトマップを用意するとかそういったところにこだわります。

これらはすべてロボット向けの対策です。
しかも、Googleが昔に一部披露したアルゴリズムです。

ですが、グーグルがユーザーファーストを掲げる時代に
これらの「ロボット対策」は古さを感じます。

確かにロボットに正しく認識してもらう努力でマイナスになることはないでしょうが、
世の中やグーグルの動きを見ていると、もはやそんなフェーズではないのです。

なぜなら、グーグルは以前から人工知能によってユーザーの動向を学習させ、
検索結果に反映させるアルゴリズムを稼働させているからです。


急速に進化するテクノロジーの前で
このようなSEOの考え方は致命的に時代遅れです。

これからはコンテンツの時代です。

"ロボット"が見るところではなく、
”ユーザー"から見えるところにリソースを注いだほうが
効率よく目的を達成できますね。


それではまた。

2017年3月20日月曜日

インターネットの検索結果上位(1位)でも売上げに結びつかない理由

今、お悩みのあなたへ。

インターネット検索で上位にタイトルや説明文 が表示できていればクリックされ

アクセスがあり、売上が上がると思っていますか? 答えはNOです。

 ホームページからのお問い合わせがないあなたへ。

手間暇かけてHPを作った(作ってもらった。)

検索エンジンにも登録した。

なのに閑古鳥

もし、問い合わせがない理由 をお知りになりたければ

例えば、

Yahoo!プロモーション広告(リスティング広告)

Googleアドワーズ広告とは?


を試して見るのもいいのかも知れません?

Yahooリスティング広告やGoogleアドワーズ広告を利用しても良い結果がでなければ

ホームページを見直す必要があるのではないでしょうか?

本来、ホームページは無料で作り無料でインターネット上で公開できてあたりまえ

でも、そこには「それぞれの出来ない部分」に対してのビジネスが生まれています。

今後インターネット検索最大手Googleは益々、ホームページの内容(品質)にこだわり

過去のSEO【上位表示する為だけにお金を払う?) は今後通用しない確立した時代が

もうすぐやってきます。


いくら検索結果を上位表示を狙いタイトルや説明文だけを変えても駄目です。

売らない。、押し売りをしない。

ユーザー目線(興味をもって貰える)に合うホームページ。

お客様から是非あなたから買いたい。

あなたからのサービスを是非受けたい。

と思ってもらえるようなホームページではないでしょうか?

そうする事によりホームページにお金をかけなくても自然に上位表示します。

その為には日々自分で課題を見つけて改善や努力も必要ですが・・・。


例えばうどん屋さんの例を少しお話すると

ある山奥に一件のうどん屋さんがありました。

外観を見る限りではとても流行りそうでないお店でした。

ところがある「キッカケ」で行列ができるようになりました。

ある「キッカケ」とは何だったと思いますか?

そこの主人がパソコンを使い素人ながらホームページを作って公開したからです。

もともとそこの主人はうどん作りの名人で腕には自信があったようです。

あなたはどう感じましたか?




難しいとは思いますが世の中のホームページは

あまりにも「売り」を全面に出したホームページが多すぎるのではないでしょうか?



あくまでも1ページ1キーワードに徹して「タイトル」「説明文」「ページ本文」が一致していて

ユーザーが興味を持ちクリックされ他社との違いが明確にわかり問い合わせに繋がるような

ホームページ作りが好まれます。

尚、安売りをモットーにしてるのなら話しは別ですが、他社との違いが明確に伝えられなく

同じような商品やサービスなら安い業者を選ぶのではないでしょうか?

今、一度 Google検索エンジン最適化スターターガイド 

をじっくりお読みくだってみられたらいかがでしょうか?

また弊社公式ホームページのコラムも参考にされ今後の繁栄をお祈り申し上げます。

https://www.smile-kyuubin.jp/colomn/

今後大きな変動が起こっていくものの、やはり最終的に評価されるのは

「ユーザーにとって有益な情報」です。

Googleはユーザーファーストを追求する企業だということを常に忘れず、

小手先のテクニックに頼らず、テキスト・動画関係なく良質なコンテンツを作る事を心がけましょう。