AWS / PHP / Python ちょいメモ

amazon web service , PHP, Python を使ったときのメモ。日本語でググってもわからなかった事を中心に。

Python が 参照する証明書ストアを掘ってみた (CentOS 版)

以前まとめた Ubuntu版 の続きになります。

Redhat 6 (CentOS) 系では、証明書ストア管理には、 ca-certificates の利用がオプション状態となっているので、enableにしてから使おうね。というような内容になります。Redhat 7以降は、すでに対処後の状態になってるはずです。

※文中、主に CentOSの対処方法を見ながら設定したので、RedhatCentOSと書き換えて記載させてもらいます

最初に

まずは、OS自身がもってるルート証明書の更新。ここから。

openssl , ルート証明書の更新

$ sudo yum update openssl
$ sudo yum update ca-certificates

うまくいかなかったら

各種更新でも対応ができなかった場合、対象サイトの証明書のルート証明書などを、手動でインストール必要があります。

Redhat6の場合、後述のような証明書管理システムの更新を行って対処しました。

続きを読む

HTTPS調べるときに便利なOpenSSLの使い方 <s_client編>

二ヶ月ほどよく使う機会があったので、まとめ。

基本の書式

$ openssl command [ commandオプション ] [ command引数 ] 

かならず command 部分が必須パラメーターになるのがポイント。

openssl というコマンドというよりも command を含めての覚えておくのが吉かなと(私自身がよく忘れてました)。


今回は、次の standard-command を紹介します。

  • openssl s_client : 汎用的な SSL/TLS クライアント

その他、cipher commandmessage-digest command がありますが、関連するものだけ合わせて。

※なお $ openssl だけを入力することで、インタラクティブモードにも入れますが、ここでは割愛

バージョン確認

バージョンによって、対応しているciper , message-digestが全然違います。古いOSで作業する場合には、要確認かなと。

Ubuntu 14.04 の場合:

$ openssl version
OpenSSL 1.0.1f 6 Jan 2014

macOS High Sierra (v.10.13.4) の場合:

$ openssl version
LibreSSL 2.2.7
続きを読む

Python が 参照する証明書ストアを掘ってみた (Ubuntu 版)

Python で作ったプログラムが、あるサイトをのぞきに行けなったのだが、証明書ストアに中間証明書がなかったことが原因だった。という話の、まとめ。

結論としては、Ubuntuの証明書ストア管理には、ca-certificates という仕組みが用意されているので、それを使って、足りない中間証明書を追加してやった。という内容になります。


こんな環境に対して、つらつら書きます。

  • Ubuntu 14.04.5
  • Python 3.5.3
  • urllib.request で 該当サイトを見に行く (Requests ライブラリなどは未使用)

起こったこと

Python

Python で作ったプログラムが、ある時からサイトに接続できなくなった。エラーを見ると、次の内容で、SSL関連。どうやら、新たに追加されたサブドメインで、これまでとは異なる証明書が設定されているらしい。

SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:720)'),)
続きを読む

Django で Model の グラフ図を出力

本エントリーは、過去エントリー : Django の ER図 出力 が 2ステップで出来た - AWS / PHP / Python ちょいメモ の修正などを含めて記載しております。


Django では、Modelの定義を行う事でデータベースは定義は自動的に作成されます。

django-extensions を使うことで、Modelからグラフ図を出力することができます (ER図とは少々違い、Modelの継承などが表現されてるので、UMLのクラス図に近いようです。でもリレーションの表現が甘い?このあたり詳しくない。。。)。内部的には、「Django の Model定義 -> dot ファイル -> Graphviz で図にする」という手順を踏んでいるので、 dot ファイルの方が扱いやすい方は、画像出力じゃない方法もとれるようです。


見つけてしまえば、たった2ステップ。簡単ですね(開発者に感謝!)

環境

手順

先述の環境が動作してる前提で、次のコマンドをたたき、pygraphvizなどのインストール環境を作る。

$ sudo apt-get install libgraphviz-dev graphviz pkg-config

その後、pip でメインのパッケージをインストール。

$ sudo pip3 install pygraphviz
$ sudo pip3 install pydotplus
$ sudo pip3 install django-extensions

上記により、次がインストールされました。

  • pygraphviz-1.3.1
  • pydotplus-2.0.2
  • django-extensions-2.0.7
続きを読む

VirtualBox on Win で vagrant up できない (ホストのNICに NDISがなかった)

三か月前には動いてた vagrant 環境が動作しない。使ってない期間、VirtualBoxのアップデート、Hyper-Vのインストール、CreatorsUpdateの適用など色々あったしなぁ。

結果的にはホスト上のNICに、 「VirtualBoxのNDISをインストール」 してあげればOKだった。

環境

エラー

vagrant up を発行するものの、次のエラーが発生。3か月前は動いてたのになぁ。。。

続きを読む