Skip to main content

Linux 用 Web サーバーとしてのインストール – クイックスタート

ターミナルで、以下の手順に従って直接操作します。CODESYS 4ウェブサーバー上。

ヒント

詳しいガイドについては、以下を参照してください。Linux 用 Web サーバーとしてのインストール

起動CODESYS 4ローカルサーバーとして

管理者権限が必要です

以下を実行するにはsudoコマンドを実行するには、システム管理者権限が必要です(参照)。 Debian Wiki: sudo )

  1. ダウンロードCODESYS 4 CODESYSストアから入手できるDebianパッケージ。

  2. インストールCODESYS 4 Debianパッケージ。

    sudo apt install ./codesys-4_[your version]_[your architecture].deb
  3. グループを作成するcodesys-4そしてユーザーc4-serverこれらは、サーバーを起動し、アプリケーションにログインするために必要です。

    次の例では、追加のテストユーザーとして、hugo作成され、追加されますcodesys-4グループ。このユーザーは後でアプリケーションにログインできるようになります。これはオプションです。テスト目的で、既存のユーザーを単純に追加することもできます。codesys-4グループ。

    1. 作成するcodesys-4グループが存在しない場合は作成します。このグループは、Debianパッケージのインストール時に自動的に作成されるはずです。

      sudo addgroup codesys-4
    2. サーバーを実行する新しいシステムユーザーを作成します。

      sudo useradd --system --create-home c4-server
    3. オプション: 新しいテストユーザーを作成します。hugoパスワードを覚えておいてください。

      sudo adduser hugo
    4. オプション: hugoユーザーへcodesys-4グループ。

      sudo adduser hugo codesys-4
      
  4. で/etc/systemd/system/、という名前のファイルを作成しますcodesys-4.service。 交換するnanoお好みのエディターで編集してください。

    sudo nano /etc/systemd/system/codesys-4.service

    ファイルを以下のように編集してください。

    [Unit]
    Description=CODESYS 4 Server
     
    [Service]
    Type=exec
    WorkingDirectory=/opt/codesys-4/
    ExecStart=/opt/codesys-4/c4-server --port 8080
    Restart=always
    # Restart service after 10 seconds if the dotnet service crashes:
    RestartSec=10
    KillSignal=SIGINT
    SyslogIdentifier=codesys-4-server
    User=c4-server
    Environment=ASPNETCORE_ENVIRONMENT=Production
    Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
     
    [Install]
    WantedBy=multi-user.target
  5. 先ほど作成したsystemdユニットを起動します。

    sudo systemctl start codesys-4

    のCODESYS 4サーバーは、ローカルでポート経由でアクセス可能になります。8080これで、以前作成したユーザーの認証情報を使用してアプリケーションにログインできるようになります。Hugoでhttp://localhost:8080。

  6. また、ユニットを次のように設定します。enabledシステム起動時にサーバーを自動的に起動するには:

    sudo systemctl enable codesys-4

リバースプロキシの設定

作成するためにCODESYS 4ネットワーク上の他のデバイスからアクセスするには、アップストリームHTTPSリバースプロキシの設定が必要です。これは技術的な要件によるものです。詳細については、以下を参照してください。TLSリバースプロキシの事前配置。

リバースプロキシを設定するには、例えばDebianのnginxパッケージを使用できます。設定に必要な手順は以下のとおりです。

  1. まだインストールしていない場合は、nginxパッケージをインストールしてください。

    sudo apt update && sudo apt install -y nginx
  2. HTTPS通信を有効にするには、一時的な自己署名証明書と秘密鍵を作成する必要があります。

    セキュリティリスク

    自己署名証明書を作成し、それを信頼できるものとして分類することは、重大なセキュリティリスクを伴います。第三者が証明書や秘密鍵にアクセスできないようにしてください。そうしないと、中間者攻撃に対して脆弱になります。

    さらに、以下の手順で作成された証明書は、テスト目的のみに適しており、実運用での使用には適していません。CODESYS 4社内ガイドラインに従って、本番環境で使用可能なTLS証明書を作成する必要があります。サポートが必要な場合は、IT部門またはITサービスプロバイダーにお問い合わせください。

    この分野について疑問がある場合や、よく知らない場合は、この時点でそれ以上の試運転を中止し、IT部門またはITサービスプロバイダーに連絡してください。

  3. テスト目的で、リバースプロキシ用の秘密鍵と証明書を作成します。

    1. 必要なフォルダを作成します。

      sudo mkdir -p /etc/ssl/certs /etc/ssl/private
    2. 秘密鍵と自己署名証明書を作成します。

      sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
        -keyout /etc/ssl/private/codesys-4.key \
        -out /etc/ssl/certs/codesys-4-certificate.crt
    3. キーを所有者(root)のみが読み取れるように設定します。

      sudo chmod 600 /etc/ssl/private/codesys-4.key
    4. 証明書を誰でも読み取り可能にし、所有者(root)のみが書き込み可能にする。

      sudo chmod 644 /etc/ssl/certs/codesys-4-certificate.crt
  4. リバースプロキシの設定を作成します。nanoお好みのエディターで編集してください。

    sudo nano /etc/nginx/sites-available/codesys-4
  5. 以下の設定を作成してください。

    例 2. /etc/nginx/sites-available/codesys-4
    # See https://docs.microsoft.com/en-us/troubleshoot/developer/webapps/aspnetcore/practice-troubleshoot-linux/2-2-install-nginx-configure-it-reverse-proxy
    # for more information.
    
    server {
     listen	443 ssl;
     listen	[::]:443 ssl;
     ssl_certificate /etc/ssl/certs/codesys-4-certificate.crt;
     ssl_certificate_key /etc/ssl/private/codesys-4.key;
    
     #server_name _;
     server_tokens off; # see https://nginx.org/en/docs/http/ngx_http_core_module.html#server_tokens
    
     location / {
     rewrite ^/$ /index.html last;
     proxy_pass http://127.0.0.1:8080;
     proxy_http_version 1.1;
     proxy_set_header Upgrade $http_upgrade;
     proxy_set_header Connection keep-alive;
     proxy_set_header Connection "Upgrade";
     proxy_set_header Host $host;
     proxy_cache_bypass $http_upgrade;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     proxy_set_header X-Forwarded-Proto $scheme;
    
     #hsts header
     add_header Strict-Transport-Security "max-age=31536000" always;
     }
    }
    
    # Redirect unencrypted http access to encrypted https access.
    server {
     listen 80 default_server;
     listen [::]:80 default_server ipv6only=on;
    
     server_name _;
    
     return 301 https://$host$request_uri;
    }


  6. シンボリックリンクを介して設定を有効にする:

    1. nginxのデフォルト設定を無効にします。

      sudo rm /etc/nginx/sites-enabled/default
    2. 作成した設定を有効にしてください。

      sudo ln -s /etc/nginx/sites-available/codesys-4 /etc/nginx/sites-enabled/codesys-4
  7. 変更した設定を適用するには、nginxを再起動してください。

    sudo systemctl restart nginx

    CODESYS 4現在、以下のアドレスにアクセスできるはずです。 https://localhostポート443で、またはネットワーク上の他のデバイスからhttps://[your_device_name/your_ip_address]。

  8. また、nginxユニットを次のように設定します。enabledシステム起動時にリバースプロキシを自動的に起動するようにするには:

    sudo systemctl enable nginx
  9. IPアドレスがわからない場合は、ipこのコマンドを実行するには、社内ネットワークとファイアウォールがアクセスを許可している必要があります。

    ip addr

    コマンドの出力は次のようになります。

    #1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    #    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    #    inet 127.0.0.1/8 scope host lo
    #       valid_lft forever preferred_lft forever
    #    inet6 ::1/128 scope host noprefixroute
    #       valid_lft forever preferred_lft forever
    #2: end0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    #    link/ether 01:23:45:67:89:ab brd ff:ff:ff:ff:ff:ff
    #    inet 192.168.0.123/24 brd 192.168.0.255 scope global dynamic noprefixroute end0
    #       valid_lft 350450sec preferred_lft 350450sec
    #    inet6 fe80::0123:1234:2345:3456/64 scope link noprefixroute
    #       valid_lft forever preferred_lft forever

    サーバーのIPアドレスは以下に記載されています。end0デバイス – 多くの場合、eth0または類似のもの(参照) Debian Wiki: NetworkInterfaceNames )

    • 単語の後の IPv4 アドレスinet : 192.168.0.123

    • 単語の後の IPv6 アドレスinet6 : fe80::0123:1234:2345:3456この例では

上記のように自己署名証明書を使用すると、ブラウザに警告が表示されます。

_c4_img_install_webserver_linux_warning.png

ブラウザに表示されている証明書とデバイス上の証明書を比較して、正しくデバイスに接続されていることを確認してください。

これを行うには、ターミナルで次のコマンドを実行してください。

openssl x509 -in /etc/ssl/certs/codesys-4-certificate.crt -noout -fingerprint -sha256

出力には証明書のフィンガープリントが含まれています。これをブラウザの証明書のSHA-256フィンガープリントと比較してください。(参照) Firefoxの手順または、Google Chrome では、セキュリティが保護されていませんアドレスバーのボタン →証明書の詳細両方の指紋が同一で、リスクを認識している場合は、クリックして一時的に警告を無視できます。リスクを受け入れて続行する(Firefox)またはlocalhostへ移動(安全ではありません)(Google Chrome)