小型ボードコンピュータ「Raspberry Pi(ラズパイ)」を使って、低コストかつ現場レベルでIoT(モノのインターネット)を活用する手法について解説する本連載。第14回は、ラズパイのセキュリティとして暗号化通信を導入する方法を紹介します。併せて、不良実績入力の品質管理での応用も取り上げます。
今回は、小型ボードコンピュータの「Raspberry Pi(ラズベリーパイ、略してラズパイ)」に暗号化通信を適用してセキュリティを確保するとともに、工場の品質管理システムに適用する事例を紹介します。
最近ラズパイを使用したシステムでもセキュリティ確保の観点で通信の暗号化設定を求められるようになりました。自社の工場が外部の通信ネットワークと一切つなげておらず、いわゆる閉域網になっている場合でも、将来的に何らかの形でクラウドサービスに接続することを考えれば、セキュリティに関する仕組みを最初から設定しておいた方が、より高いレベルでセキュリティを確保できます。
そこで、工場内の閉域網で利用しているWebシステムに対して、SSL(Secure Socket Layer)を用いた暗号化通信を設定する手法を説明します。また、この通信環境下で不良実績を現場から入力し品質管理する事例も紹介します。
ラズパイの動作環境としては、Linuxサーバ上にPythonのWebアプリケーションフレームワークである「Flask」などをインストールして利用していることが一般的かと思いますが、これでは暗号化ができません。そこで、Linuxサーバ上にオープンソースのWebサーバである「Nginx」を追加した上で、Flaskはアプリケーションサーバとして利用することで通信の暗号化が図れるようになります(図1)。
Nginxをインターネットからダウンロードします。Nginixの公式サイトからダウンロードしてください。
Nginxのインストールと初期設定を行います。Linuxのコマンドラインから、以下のようにコマンドを実行します。
sudo apt install nginx
次に、Nginxのルートディレクトリを準備します。デフォルトは“/var/www/html”以下に作成してください。以下のコマンドを入力した後、リスト1の設定ファイルを作成します。
sudo nano /etc/nginx/sites-available/default
server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; location / { include proxy_params; proxy_pass http://localhost:8000/; } }
FlaskとNgnixの間で通信を行うためのソフトウェアである「Gunicorn」をインストールします。Gunicornも公式サイトからダウンロードしてください。
Gunicornのインストールと初期設定を行います。Linuxのコマンドラインから、以下のようにコマンドを実行します。
sudo pip install gunicorn
次にGunicornの設定を行います。以下のコマンドを実行した後、リスト2の設定ファイルを作成します。
sudo nano /home/ubuntu/proj/config/gunicorn.conf.py
import os bind = '127.0.0.1:' + str(os.getenv('PORT', 8000)) proc_name = 'Infrastructure-Practice-Flask' workers = 1
Gunicornは以下のコマンドで起動します。
sudo cd /home/ubuntu/proj/ sudo gunicorn app:app -c config/gunicorn.conf.py
Copyright © ITmedia, Inc. All Rights Reserved.