検索
連載

ラズパイにもセキュリティを、不良実績入力の品質管理を暗号化通信で実現ラズパイで製造業のお手軽IoT活用(14)(1/3 ページ)

小型ボードコンピュータ「Raspberry Pi(ラズパイ)」を使って、低コストかつ現場レベルでIoT(モノのインターネット)を活用する手法について解説する本連載。第14回は、ラズパイのセキュリティとして暗号化通信を導入する方法を紹介します。併せて、不良実績入力の品質管理での応用も取り上げます。

Share
Tweet
LINE
Hatena

 今回は、小型ボードコンピュータの「Raspberry Pi(ラズベリーパイ、略してラズパイ)」に暗号化通信を適用してセキュリティを確保するとともに、工場の品質管理システムに適用する事例を紹介します。

⇒連載「ラズパイで製造業のお手軽IoT活用」バックナンバー

1.ラズパイにもセキュリティが求められる

 最近ラズパイを使用したシステムでもセキュリティ確保の観点で通信の暗号化設定を求められるようになりました。自社の工場が外部の通信ネットワークと一切つなげておらず、いわゆる閉域網になっている場合でも、将来的に何らかの形でクラウドサービスに接続することを考えれば、セキュリティに関する仕組みを最初から設定しておいた方が、より高いレベルでセキュリティを確保できます。

 そこで、工場内の閉域網で利用しているWebシステムに対して、SSL(Secure Socket Layer)を用いた暗号化通信を設定する手法を説明します。また、この通信環境下で不良実績を現場から入力し品質管理する事例も紹介します。

2.ラズパイを用いたWebシステムのSSL暗号化設定の手順

 ラズパイの動作環境としては、Linuxサーバ上にPythonのWebアプリケーションフレームワークである「Flask」などをインストールして利用していることが一般的かと思いますが、これでは暗号化ができません。そこで、Linuxサーバ上にオープンソースのWebサーバである「Nginx」を追加した上で、Flaskはアプリケーションサーバとして利用することで通信の暗号化が図れるようになります(図1)。

図1
図1 暗号化前と後におけるWebシステムの構成の違い[クリックで拡大]

2.1 Webサーバの設定

2.1.1 Nginxの設定

 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/;
	}
}
リスト1 Nginxの設定ファイル

2.1.2 Gunicornの設定

 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
リスト2 Gunicornの設定内容

 Gunicornは以下のコマンドで起動します。

sudo cd /home/ubuntu/proj/
sudo gunicorn app:app -c config/gunicorn.conf.py

Copyright © ITmedia, Inc. All Rights Reserved.

       | 次のページへ
ページトップに戻る