次はuwsgiというシンプルな外部WSGI接続が可能なWEBサーバーをpipでインストールします。index.pyをuwsgiを経由して実行します。uWSGI!」と表示されます。次にwsgiでSSL接続を行ってみましょう。pythonのプログラムは特に修正する必要はありません。uwsgiのネットワークトンネルを拝借していますから、SSLの処理はuwsgiの機能で行います。テスト環境でSSLサーバの設置を行う場合のやり方よくオレオレ証明書を使う方がいますが、今は安いSSL証明書なら年間ライセンス1000円程度で購入できます。私はテスト用に1000円のSSLライセンスを購入して実験利用しています。テスト環境で実験する場合はWindows側では”c:\Windows\System32\Drivers\etc\hosts”を管理者権限モードでテキストエディタで開いてDNSの照合よりも先にhostsファイルに登録したドメインとIPアドレスを参照するように予めテスト用のドメインを登録しておきます。ドメイン認証だけのSSLならこれでうまくいきます。それ以外の認証が入っている高価なSSLだと「安全ではない」がでるかもしれません。することで、SSL証明書のドメインとテスト用のサーバのドメインを一致させブラウザを騙します。しないとhttps接続時に赤色でバツや三角がブラウザ上のURLそばのアイコンが表示されます。証明書の準備と取得証明書のマージ処理からサーバ起動まで証明書が購入できたら次に作業するフォルダーに証明書用のフォルダーを作成します。今はとりあえずauthという名前のフォルダーを作成します。そこに購入した証明書ファイルを配置します。以下のような最低でも3種類のファイルが必要となります。サーバー証明書(server.crt)サーバ秘密鍵(server.key)中間証明書(ca-bundle.ca)これらのファイルで中間証明書はuwsgiコマンドのパラメータで指定する事ができないため、中間証明書とサーバ証明書は1つのファイルにマージします。サーバ証明書と中間証明書を統一する。integrated.crtマージされた証明書は必ず一度エディターで中を開けてチェックして下さい。サーバ証明書が一番上に来るようにして下さい。中間証明書はサーバ証明書のend区切りコメントに連続にならないように改行を必ず入れてください。しないとエラーになります。下記は証明書を結合した場合の証明書同士のボーダーを示しています。結合する前にサーバ証明書に改行を入れておくと安全です。結合後はチェックしましょう。次のようにuwsgiを起動する際に鍵ファイルや証明書を指定します。index.py実際の実行時のターミナル画面は次のようになります。実際に本番稼働させる場合は実行用のユーザとグループを用意してchrootさせて実行すると以下の警告はなくなります。その他uwsgiの実行オプションはここパラメータでスレッド数、プロセス数やパフォーマンスに関するその他の項目、ログの場所など細かくチューニングが可能ですスレッド数やプロセス数を増やせば必ずしもマルチスレッドに対応したコンテンツになるとは限りません。コンテンツがREAD主体の静的コンテンツはスレッド数やプロセス数を増やせばマルチスレッドになると思いますが、動的に変化するコンテンツは内部側でもマルチスレッド対応(thread_safe)にしないと駄目なケースが多いと思います。いうか、ほとんどPythonコンテンツ側もマルチスレッド動作に対応する必要ありだと思います。マルチスレッド対応とは2種類の意味があります。DBなどファイル書き込みが複数のスレッドで競合が起きないようにするという意味と複数のコネクションを1プロセスで捌くという意味です。今回の場合はスクリプト起動なので必要最低限で前者が必須のケースです。マルチスレッド通信はProxyタイプ通信で連携する場合では必須なので他の章を参考にしてください。27629)ブラウザから以下のようにアクセスができたら成功です。中間証明書がきちんと登録ができていないと今のブラウザは厳しいので「このサイトは安全でない」と表示されるので要注意です。中間証明書とサーバー証明書をマージして区切り線が前後に改行されていることを確認しましょう。リクエストメソッドDoS攻撃激減。python3.5でiptablesの国内IPのみの接続ルールを生成&適用。Updateが進まなくなった場合の対処や大型Update後のゴミ掃除。viewsApacheにおけるSSL設定品質の肝。viewsApacheログからセキュリティアタックの解析をする。