LINE WORKS 自動起動しない

最近LINE WORKSが自動起動しなくなった。

どうやら、
Windows起動時に自動実行する
をチェックすると、
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
にエントリされるようだが、フルパスじゃなく実行ファイル名のみになっていた。

Get-ItemProperty -Path Registry::HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

フルパスに書き換えると、1度は自動起動するが、起動時にエントリを修正するようで、また実行ファイル名のみになってダメ。

他にも、
sysdm.cpl>環境設定>環境変数
からパスを通してみたけどダメ。

もともと正しく自動起動していたときにどういう値だったか見ていないので、どうしようもない。

再インストールは面倒なので、
Windows起動時に自動実行する
のチェックを外し、
shell:startup
にショートカットを登録した。

 

 

 

さくらのレンタルサーバ HTTPS化(無料SSL)

・無料SSL有効化

サーバコントロールパネルにログイン。

左側メニュー>ドメイン/SSL>ドメイン/SSL
をクリック。

対象ドメインにある
SSL

をクリック。

登録設定を始めるSSL証明書の種類を選択
をクリック。

Let’s Encrypt (無料SSL)
を選択する。

SNI SSL(ネームベース)
がチェックされ、
IPベースの証明書は新規でのご提供を終了いたしました、
とあるので、そのままでOK。

しばらくすれば完了。

***

・転送設定

SSL有効化が完了してから作業。

ドキュメントルートに.htaccessを設置するという方法もあるが、先程と同じく、
サーバコントロールパネルにログイン。

左側メニュー>ドメイン/SSL>ドメイン/SSL
をクリック。

対象ドメインにある
設定

をクリック。

HTTPSに転送する
にチェック。

VBA ListBox参考

ListBoxの使い方を忘れてしまうので、さっき作ったものをメモ代わり。

 

WatchGuard VPN ClientからOpenVPN GUIに変更

ときどき利用しているWatchGuard VPN Clientの調子が悪く、接続プロセス中に止ってしまうことが多くなった。

情報も少なく原因追求もできなかったので、試しにOpenVPNのクライアントをそのまま使ってみようかと考えた。
https://www.openvpn.jp/download/
から
OpenVPN-x.x.x-I601-amd64.msi
をダウンロード+インストールし、
C:\Users\xxx\AppData\Roaming\WatchGuard\Mobile VPN
の中にある、
ca.crt
client.crt
client.ovpn
client.pem
の4つのファイルを、そのまま
C:\Program Files\OpenVPN\config
の中にコピーしたらOpenVPN GUIで接続できたので、しばらく使ってみる。

***

追記:数ヶ月利用してみた結果、OpenVPNの方が安定しているような感じで、一度も問題は発生しなかった。

一応、WatchGuardの方は、
https://software.watchguard.com/SoftwareHome
からFirebox and XTMの中で適当な製品を開き、
Mobile VPN with SSL xx.x for Windows
の最新版をダウンロードして入れたら動くようにはなった。

***

追記:1年以上OpenVPNを利用したが特に問題なし。

少し気になったのが、VPNを有効にすると、ネット接続が全てVPN経由になってしまうこと。時々切断を忘れることもあるので、特定のIPアドレスの範囲だけVPN経由に変更。

NICのメトリックで対応できるかと思ったけど、接続を実行すると、
ネットワーク宛先 / ネットマスク / ゲートウェイ / インターフェイス
0.0.0.0 / 128.0.0.0 / 192.168.113.1 / 192.168.113.5
128.0.0.0 / 128.0.0.0 / 192.168.113.1 / 192.168.113.5
(192.168.113.5がVPNのNIC)
というルーティングが追加されてしまうようでダメだった。

ちなみに、もともと存在するデフォルトルートは、
0.0.0.0 / 0.0.0.0 / 192.168.11.1 / 192.168.11.18
(192.168.11.18が物理NIC)

OpenVPNの情報が少なく適当ではあるけど、
C:\Program Files\OpenVPN\config\client.ovpn
に、
route-nopull
route 192.168.0.0 255.255.248.0
と追加した。
(192.168.0.1~192.168.7.254までVPN経由)

client.ovpnの名前を変更して、*.ovpnを複数作成すると、タスクトレイのアイコンから選択して接続できる。

***

クライアントを2.5.8>2.6.0に上げたらエラーが出たのでエラーの内容から、client.ovpnに、
data-ciphers AES-128-CBC
と追加した。

VBA 起動部分テンプレート

いつも忘れてしまうのでメモ。

右クリックメニューの階層化。高速化等々。

 

PHP お問い合わせフォーム

 

C# Reflection DataTableをListに代入

DataGridViewのDataSourceにList<Model>を渡すとき、DataTableからList<Model>に代入をReflectionで作ってみる。普段はそのまま名前を書いてしまうことも多い。

 

SSL/TLS メモ

SSL/TLSは分かりづらいのでメモ

●SSLとTLS
Secure Sockets Layer
Transport Layer Security

SSLは既に廃止、プロトコルとしてはTLSのみ。呼称としてのみSSL。

●公開鍵暗号
公開鍵は暗号化
秘密鍵は復号化、公開鍵の生成。
※秘密鍵で暗号化というのは考えない。

●バージョン

Chromeデベロッパーツール>セキュリティ

●SSL/TLS

・サーバーは認証局に証明書を発行してもらう
CSRを認証局でハッシュ化し、それを署名生成鍵(秘密鍵)で暗号化。
CSR+暗号化されたハッシュ=署名済証明書

・サーバーに署名済証明書をインストール

※以下ハンドシェイク(TLSのバージョンによって違う)

・共通鍵生成
お互い、非公開パラメータと公開パラメータを生成し、公開パラメータを相手に送る。

・サーバーはクライアントに署名済証明書(中間CA証明書なども)を送付

・クライアントは署名済証明書に改ざんがないか検証
署名済証明書を検証鍵(公開鍵)で復号化し、CSRから計算したハッシュと、
復号化したハッシュを比較する。
※検証鍵はOS/ブラウザにインストールされている

GCP Cloud SQL(MySQL) 使い方

先日VPS(Indigo)のSQLite→MySQLの実験を行ってみたが、GCPでもやってみることにした。

初期設定

Cloud SQL 無料トライアルを実行する。
(既にクレジット等の情報は登録済みなのでそのまま完了)

コンソールにログイン>左側メニューのSQLを選択。
プロジェクト(すでにMyFirstProjectが存在している)をクリック。
インスタンスを作成をクリック。
MySQLをクリック。

インスタンスID、rootパスワードを入力する。
無料トライアルだが、実際運用を始めれば安く利用したいので、
asia-northeast1(東京)/db-f1-micro
SSD/10GB
自動バックアップしない
を選択する。インスタンス生成には少し時間がかかる。

・インスタンス作成後

コンソールにログイン>左側メニューのSQLを選択。
作成したインスタンスを選択。

左側メニューの接続を選択。
SSL接続のみ許可をクリック。
クライアント証明書を作成をクリックし、一意のIDを追加し作成。

・サーバー証明書:server-ca.pem
・クライアントの公開鍵証明書:client-cert.pem
・クライアント秘密鍵:client-key.pem
という3つのファイルをダウンロードする。

同じく左側メニューの接続から、ネットワークを追加をクリック。
ネットワークの項目:0.0.0.0/0
を追加し完了>保存を実行。

左側メニューの概要を選択、パブリックIPアドレスを確認。

MySQL Wokbenchから接続

Standard TCP/IPを選択。

・Parametersタブ
Hostname:パブリックIPアドレス
Port:3306
Username:DBユーザー名(root、app_user等)
パスワード:DBパスワード

・SSLタブ
Use SSL:Require and Verify CA
SSL Key File, SSL CERT File, SSL CA File
それぞれ、ダウンロードしたファイルを選択。
※登録後ファイルのパス変更(移動)できないので注意。

とりあえずこれでつながる。

C#(MySqlConnection)から接続

.Netではpemが使えないため、
(https://dev.mysql.com/doc/connector-net/en/connector-net-tutorials-ssl-pfx.html)
opensslのある環境上で(今回はVPSで)実行

openssl pkcs12 -export -inkey client-key.pem -in client-cert.pem -out client.pfx
pfxファイルを作成する。(client部は任意の名前)

pfxパスワードを聞かれるが、空白も可能で空白の場合、接続文字列のCertificatePasswordは不要となる。

・ワンライナーで設定する場合
pass=$(head /dev/urandom | tr -dc a-km-np-z1-9 | head -c 13);openssl pkcs12 -export -inkey client-key.pem -in client-cert.pem -out client.pfx -passout pass:${pass};echo $pass;

・接続文字列

MySQLのConnectorはNuGetでもインストーラーでもいける。インストーラなら参照設定から登録。

VBAからの接続

MySQLのODBCドライバをインストールする。32/64bitはOSではなくOfficeに合わせる ‘(ファイル>アカウント>Excelバージョン情報)

https://dev.mysql.com/downloads/connector/odbc/
mysql-connector-odbc-xxx-winx64(32).msi

MySQLにインポート

・データベース作成

コンソール>SQL>インスタンス選択>データベース>データベースの作成をクリック。

文字セット:utf8
照合:デフォルトの照合

・ファイルアップロード(Storage)

コンソール>Storage>ブラウザ>バケットを作成をクリック。

バケットに一意の名前をつける。

ロケーションタイプ:Region
ロケーション:asia-northeast1(東京)
ストレージクラス:Standard
アクセス制御:均一

コンソール>Storage>ブラウザ>バケットを選択>ファイルをアップロードをクリック。

・インポート

コンソール>SQL>インスタンス選択>概要>インポートをクリック。

ソースにファイルを指定:アップロードしたファイル選択
ファイル形式:SQL
インポート先:作成したデータベース名

VPSのMySQLへはSQLiteで作成したファイルを直接インポートできたが、GCPではできなかったため、とりあえず今回はSQLite>MySQL(VPS)>MySQL(GCP)という流れになった。

Python 組み込みサーバー

 

・組み込みサーバーでCGIを処理

Win10設定>アプリ>アプリと実行エイリアス
python.exeをオフにする

sysdm.cpl>詳細設定>環境変数
からパスを通す
C:\Users\mail\AppData\Local\Programs\Python

バッチファイルを作成

バッチと同じ階層にpython.pyを作成

バッチと同じ階層にindex.htmlを作成

binファルダ以下にtest.pyを作成