Blog

  • Lightsail環境下でのhttp->https自動リダイレクト設定

    Lightsail環境下で、httpアクセスを自動でhttpsアクセスへリダイレクトする設定方法をメモ。

    /opt/bitnami/apache2/conf/bitnami/bitnami.conf を以下の内容で変更する。

    ※:修正前に変更前に元のファイルを bitnami.conf-ORG 等でバックアップを取得しておく事。

    ポート 80 の設定の
    DocumentRoot “/opt/bitnami/apache2/htdocs”

    の直下へ以下の3行を追加

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^ドメイン名
    RewriteRule ^/(.*)$ https://ドメイン名/$1 [R=301,L]

    apache を再起動する

    sudo /opt/bitnami/ctlscript.sh stop apache

    sudo /opt/bitnami/ctlscript.sh start apache

    外部から、アクセスして、リダイレクトする事を確認する。

    http://ドメイン名

    上記で、アクセスしても、https のアクセスとなる事を確認する。

  • Lightsail環境下でのSSL/TLS証明書自動更新

    Lightsail環境下で、無償のSSL/TLS証明書を自動更新する手順を健忘禄としてメモ。

    2022/3/31 証明書の鍵長の疑問へ追記。

    2022/2/1 証明書の誤発行対応を追記。

    /opt/bitnami/letsencrypt/renew-certficate.sh を以下の内容で作成する。

    #!/bin/bash

    sudo /opt/bitnami/ctlscript.sh stop apache

    sudo /opt/bitnami/letsencrypt/lego –tls –email=”管理者メールアドレス” –domains=”ドメイン名” –path=”/opt/bitnami/letsencrypt” renew

    sudo mv /opt/bitnami/apache2/conf/server.crt /opt/bitnami/apache2/conf/server.crt-OLD
    sudo cp /opt/bitnami/letsencrypt/certificates/ドメイン名.crt /opt/bitnami/apache2/conf/
    server.crt

    sudo mv /opt/bitnami/apache2/conf/server.key /opt/bitnami/apache2/conf/server.key-OLD
    sudo cp /opt/bitnami/letsencrypt/certificates/ドメイン名.key /opt/bitnami/apache2/conf/
    server.key

    sudo /opt/bitnami/ctlscript.sh start apache

    作成したshellは単独で動作を確認する。

    クローンへ登録する

    /var/spool/cron/root.lst を以下の内容で作成する

    30 14 1 02,04,06,08,10,12 * /opt/bitnami/letsencrypt/renew-certficate.sh >> /home/bitnami/renew-cert.txt

    sudo crontab -l

    sudo crontab -r

    sudo crontab < root.lst

    後は、実際にクローンが実行され、証明書が更新される事を確認する。

    ※:証明書は30日以上経過していないと更新されないので、30日以上経過しての動作を確認する事!!

    ※2:2021/12/3追記 証明書のKeyサイズが256。これを4096に変更しようとしたが、反映されない。要調査の事。(その内確認します) <-2022/3/31 確認した。現状で問題が無い事が確認出来たので現状のままとする。詳細は別投稿へ記載。

    DNSの登録情報を確認する方法。以下のURLで確認出来る(AWSの説明に紹介されているサイト)。

    https://mxtoolbox.com/TXTLookup.aspx

    ※3:2022/2/1 証明書の検証方法に仕様違反が有り、証明書が取り消されたので更新した。

     2022/1/28 16:00 (UTC時間なので、29日 1:00(AM)が日本時間)に証明書が無効になるとメールが届いた。メールは、1/26に届いている。これ、”TLS-ALPN-01検証方式を使ってLet’s Encryptから発行されたTLS証明書”を使用しているサイトで、誤発行と見なすとの対応になるみたい。2019年とか、同じような話が有ったはず。

     今回、期限を過ぎると、どのような動きをするのか確認した(要は証明書を更新せずに期限が過ぎるのを待った)。結果は以下(代表的な物のみ記載)。

     a)ESETとか、セキュリティソフトが入った環境では、セキュリティソフトがブロックする。

     b)iPhone では、ブラウザがブロックする。

     c)セキュリティソフト無し(ESET等の事。Defenderは有効になっており機能している)だと、Windows10+Edge は何の問題も無くアクセス出来る。証明書も問題無しと表示され、内容詳細も無効になる前と全く同じ(つまり、無効な証明書と判断が出来ない)。 <ーこれ、良いのか????

     対応は、証明書の更新を実施でOK(通常の期限切れ(普通は90日で切れる)と同じ更新方法で)。但し、残の有効期限が30日を超える場合は強制的に再発行が必要(これは仕様で、今回のように、無効になった後でも(29日を過ぎて(JST)いても、有効期限が30日を超えると再発行されない)同様の動きだった)。

     <参考:届いたメール本文>

    Hello,
    
    Please immediately renew your TLS certificate(s) that were issued from 
    Let's Encrypt using the TLS-ALPN-01 validation method and the following 
    ACME registration (account) ID(s):
    
     129393320 
    
    We've determined that an error made it possible for TLS-ALPN-01 
    challenges, completed before today, to not comply with certificate 
    issuance requirements. We have remediated this problem and will revoke 
    all unexpired certificates that used this validation method at 16:00 UTC 
    on 28 January 2022. Please renew your certificates now to ensure an 
    uninterrupted experience for your site visitors.
    
    We apologize for any inconvenience this may cause. If you need support 
    in the renewal process, please comment on our forum post. Our staff and 
    community members are available to help:
    
    https://community.letsencrypt.org/t/170449
    
    Thank you,
    
    The Let's Encrypt Team
    
    If you are receiving this email in error, unsubscribe at:
      http://delivery.letsencrypt.org/track/unsub.php?u=30850198&id=5c0a35b5472949619110d2fcf57752d5.5MIcVwCUXM%2Fc3rNh%2Bh2d8NcDT9s%3D&r=https%3A%2F%2Fmandrillapp.com%2Funsub%3Fmd_email%3Dh%252A%252A%252A%252A%2540c%252A%252A%252A%252A.%252A%252A%252A
    Please note that this would also unsubscribe you from other Let's Encrypt 
    service notices, like expiration reminders.

     

  • トレンドマイクロ SPLX の KHM 更新

    初めに

    CentOS7とかCentOS8で、ウイルス対策ソフトとしてトレンドマイクロ社のSPLXを使用している場合、リアルタイム検索用のモジュール(KHM)は、検索エンジンやパターンファイルと異なり、自動で更新されせん。
    yum 等を利用して、OSの更新を実施した場合、カーネルのバージョンが変更されKHMのモジュールがアンマッチとなると、リアルタイム検索が動作しなくなるので、更新が必要となります。

    動作状況の確認

    動作状況の確認は、以下のコマンドで確認するか、管理コンソールで確認します。

    /etc/init.d/splx status

    実行結果

    [root@server init.d]# /etc/init.d/splx status
    splxmod module is running…   <- これがKHMの動作状況
    vsapiapp (pid 10205) is running…
    entity (pid 10159 10153) is running…
    以下省略

    管理コンソールでの確認

    Scan Status の項目で

    Real-time Scan: Enabled (Incoming files)

    Enabled と表示されると、動作しています。

    KHMの更新方法

    KHMのモジュールは、カーネルとバージョンが一致している必要が有ります。 以下で確認します。

    uname -a

    Linux server 3.10.0-1127.19.1.el7.x86_64 #1 SMP Tue Au ・・・・・

    ls /opt/TrendMicro/SProtectLinux/SPLX.module

    splxmod-3.10.0-1127.19.1.el7.x86_64.x86_64.o
    splxmod-3.10.0-1127.19.1.el7.x86_64.x86_64.o.md5

    上記の確認で一致していない場合は、トレンドマイクロのホームページから、一致するモジュールをダウンロードして配置します。 古いKHMモジュールは、削除する必要は有りません(削除しても良いけど)。

    http://downloadcenter.trendmicro.com/index.php?clk=tbl&clkval=111&regs=NABU&lang_loc=1

    Kernel Support のタブから該当をダウンロードして

    /opt/TrendMicro/SProtectLinux/SPLX.module

    配下へ配置します。

    SPLXを停止 -> 再起動 します。

    /etc/init.d/splx stop

    /etc/init.d/splx start

    上記を実施後、status等を確認して、動作している事を確認します。

    ※:トレンドマイクロ社のホームページに於いて、該当するKHMモジュールが公開されるのは結構遅れます(最新のカーネルが公開されて、一か月以上掛かる事が多い)。急ぐ場合は、自分でモジュールをビルドする(マニュアルが公開されているが、コンパイルが出来る環境を用意する必要が有る)事で対応します。横着をする場合は、近いバージョンのモジュールをrenameする事で暫定的に対応が可能です(保障は出来ませんが、大体、正常に動く)。

  • Windows10のツール情報メモ

    Windows10のツール情報メモ

    Windows10の信頼性モニター

    信頼性モニターは、過去20日間または20週に発生したエラーと、更新プログラムやアプリのインストールなどの情報イベントを関連付けて確認できます。信頼性モニターはコントロールパネルの深い場所にあって見つけにくいのですが、「perfmon /rel」コマンドを実行することで素早く開くことができます。 安定インデックス(10が最も安定)は良好を示します。

    Windows Sysinternals ツール

    Windowsのトラブルシューティングに有効なツール。内部の動き等がなんとなく解ってきます。これが、まとめてMicrosoft Store から導入が可能となった。機能が多いので(ツールの数が多いとの意味)、解りづらいですが、導入は簡単になりました。

    Sysinternals Suite で検索(Microsoft Store で)すると、見つかる。arm版がネイティブかどうかは不明ですが、取り敢えず動いています(何個か動かしただけですが)。

    Wi-Fiのレポートツール

    WiFiの動作が安定しない時とか、情報をレポートしてくれるツール。

    管理者権限でシェルを立ち上げて、以下のコマンドを実行するとレポートが出力される。HTML形式なので、URLをブラウザへ貼り付けてオープンすれば内容を確認出来る。

    netsh wlan show wlanreport

  • smartctl の利用メモ

    情報の確認

    全ての情報確認

    smartctl -a /dev/sda

    1  データ読み込み時に発生したエラーの数

    5  データを予備エリアに移動した不良セクタの数

    196 セクタの代替処理が発生した回数

    197 現在異常が有って代替処理を待つセクタ数

    198 オフラインテストで発見された回復不可能なセクタ数

    とかに注意

    smartctl -l error /dev/sda
    smartctl -l selftest /dev/sda
  • ターミナルの文字化け回復

    Linux ターミナルで間違ってバイナリをcat してしまって日本語どころか英数字も文字化けするようになってしまったなんてことよくあります。

    そんなときの対応方法

    1. viを起動して 「:q」 で終了する。

    vi有能・ω・

    2. echo Ctrl+V、ESC、c、Enterを押す。 画面上には echo ^[c と表示されます これで直ります。

    3. ALT +Fnで別のターミナルに切り替える 厳密には修正ではないですが、応急処置です パニくったときはお手軽です。

  • Informixの情報入手先 <-2021/9/1 現在、ほとんどがLink切れ

    1. マニュアルのダウンロード
    2. デロッパーワークス
    3. FAQ(古い)
    4. ナレッジセンター
    5. インフォメーション
    6. ライフサイクル
    7. Fix list for 12.1
    8. Compare the Informix Version 12 editions – IIUG
    1. マニュアルの検索
    カテゴリカントリで日本を選択すると、日本語のマニュアルが検索出来る。
    1. IDS関連の情報ページ V14.10含む
    2. 牧さんのBlog
    3. V14.10の概要ページ
    4. C-SDK V4.50 関連の情報ページ
    5. 日本語のマニュアル ~Ver11.5まで
    6. HCLのHP ドキュメント https://informix.hcldoc.com/
    7. 豊富な情報とサポートを期待出来るサイト https://www.oninit.com/
    8. JDBCドライバーの入手先(新しい物) https://mvnrepository.com/artifact/com.ibm.informix/jdbc

    その他のメモ

    https://www.ibm.com/docs/ja/informix-servers/12.10

    https://www.ibm.com/support/pages/informix-%E8%A3%BD%E5%93%81%E3%81%AE%E6%97%A5%E6%9C%AC%E8%AA%9E%E3%81%A7%E3%81%AE%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E7%B5%82%E4%BA%86%E3%81%AE%E3%81%8A%E7%9F%A5%E3%82%89%E3%81%9B%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6

    https://phptreasure.wordpress.com/2015/07/19/connect-to-informix-database-with-php-zend-framework/

    https://db-engines.com/en/ranking

    https://www.hcljapan.co.jp/software/news/20200910-hcl-software-releases-onedb-a-new-cloud-native-database-for-data-driven-platforms-from-edge-to-cloud/

    サポートOSの説明

    https://www.ibm.com/support/pages/informix-server-system-requirements#sol

  • 4GLのTips

    4GLの概念

    4GLのコンパイラでは、ソース(4GLの)は、以下の5段階のプロセスにより、実行形式へコンパイルされる。

    1.i4glc1

      hoge.4gl 形式のソースを hoge.4ec 形式のファイルへ変換。主に、4GL言語を分析し、C のコードを作成するステップ。

    2.i4glc2

      hoge.4ec 形式のソースを hoge.ec 形式のファイルへ変換。主に、ESQL/C 形式のコードを作成するステップ。

    3.i4glc3

      hoge.ec 形式のソースを hoge.c 形式のファイルへ変換。宣言やSQL文 も、純粋なC言語に変換するステップ。

    4.i4glc4

      変数名に非ASCII 文字を含む可能性の有るCコードを、各国対応で無い名称に変換するステップ。

    5.i4glc5

      Cコードを、オブジェクトファイルや、実行可能な形式(デフォルトは、hoge.4ge)へ変換するステップ。

    コマンドラインでの操作

    通常、コマンドラインでコンパイルを行う場合は、以下で実施する。

    $ c4gl hoge.4gl -o hoge.4ge

    -o で指定するファイル名(拡張子も含め)で、実行形式が生成される。

    この操作で、プリプロセッサ(上記の1 ~ 4 のステップ)で作成される中間ファイルは自動的に削除されます(コンパイルが失敗した場合はこの限りで無い)。

    デバッグ等で、中間ファイルの内容を確認したい場合は、“-keep” オブションを指定して実行する事により、中間ファイルを残す事が可能となる。

    $ c4gl -keep hoge.4gl -o hoge.4ge
  • Linux環境での注意点

    Linux環境での特異な環境変数

    Linux環境下では、TERMCAP の環境変数の設定が必要となる。GUI系のI/Fで有る、dbaccess 等の使用に於いても必要となるので、設定をしておく事が望ましい。

    TERMCAP=$INFORMIXDIR/etc/termcap
    export TERMCAP

    OS(や使用するshell)によっては、TERMINFO の設定となる場合も有る。

    4GL等を使用する上での必要なライブラリ

    4GL(やESQL/C)を使用する上では、gcc と カーシス のライブラリの導入が必要。CentOS等ではデフォルトでは導入されないので、追加で導入を行う。

    # yum install gcc

    導入結果のサンプルは以下。

    # rpm -qa | grep cc
    libgcc-4.4.7-11.el6.x86_64
    gcc-4.4.7-11.el6.x86_64
    abrt-addon-ccpp-2.0.8-21.el6.centos.x86_64
    psacct-6.3.2-63.el6_3.3.x86_64
    libpciaccess-0.13.1-2.el6.x86_64
    libgcc-4.4.7-11.el6.i686
    perl-Object-Accessor-0.34-136.el6.x86_64

    カーシスは以下。

    # yum install ncurses-devel

    導入結果のサンプル

    # rpm -qa | grep ncurses
    ncurses-devel-5.7-3.20090208.el6.x86_64
    ncurses-base-5.7-3.20090208.el6.x86_64
    ncurses-libs-5.7-3.20090208.el6.x86_64
    ncurses-5.7-3.20090208.el6.x86_64
  • 環境変数の設定

    環境変数の設定

    サーバ側で、最低設定が必要となる環境変数は以下の変数となる。

    INFORMIXDIR
    PATH
    INFORMIXSERVER
    DBLANG
    DB_LOCALE
    SERVER_LOCALE
    CLIENT_LOCALE

    INFORMIXDIR

    Informixを導入したディレクトリを指定する。

    INFORMIXDIR=/opt/informix

    PATH

    サーチパスへ、Informix を追加する。

    PATH=$PATH:$INFORMIXDIR/bin

    INFORMIXSERVER

    サーバ名称を指定する。ここで指定したサーバへ、まず接続を試みる。

    INFORMIXSERVER=test

    onconfig で指定したサーバ名と同一で有る事。

    DBLANG

    Informixのプロダクトが動作時に使用するロケール

    DB_LOCALE

    データベースのロケール(実際に格納される場合のロケール)

    SERVER_LOCALE

    サーバ上で使用するロケール(ログとかの出力で使用される)

    CLIENT_LOCALE

    ユーザ(クライアント)で使用するロケール

    ロケールの設定方法

    ロケールは通常、以下の書式で設定する。

    DB_LOCALE=ja_jp.sjis-s

    この設定で指定する内容と意味については、以下で確認出来る。

    glfiles 

    を実行して、出力されるファイルの内容を確認する。

    ※1:Ver12.* 以降では、上記で出力される形式が変更されている。例えば以下。

    ja_jp.utf8 -> ja_jp.57372

    実際の設定は、どちらの形式で指定しても有効に機能する。

    ※2:ロケールに対する検索は、実際に動作する時に実施される。指定内容が間違っている場合でも、すぐにエラーとなる訳では無いので、特にDBのイニシャライズ等の時には注意をする事。