カテゴリー: 技術系memo

  • Oauth2-proxyとGoogle CloudのOauthを連携させるときの注意点

    Oauth2-Proxyで、Google CloudのOauth2.0を連携させたときの注意点として、Oauthでの認証時にGoogle Cloudで設定したOauth2.0クライアント名が表示されてしまう。

    これは、Google Cloud側の設定には、「OAuth 2.0 クライアントの名前。この名前はコンソールでクライアントを識別するためにのみ使用され、エンドユーザーには表示されません。」とあったところだ。

    そのため、気軽に「何とか-test」で名前をつけて、設定したり、テストしていたのだが、Oauth2-Proxyからアクセスしたときの画面に、この「クライアントの名前」が表示されていた。

    これを修正するには、

    1. Google Cloudでプロジェクトを開く。
    2. APIとサービスを開く。
    3. 認証情報を開き、修正するOAuth2.0クライアントIDを探す。
    4. その行の右側にあるペンマークをクリックして、編集する。
    5. 「名前」の部分を変更して、保存する。
  • MySQLでユーザを作り、DBの権限を割り当てる

    最初に、「create user」文で、ユーザを作る。その時にパスワードも設定する。

    次に、grant文で、DBの権限を割り当てる。grant文でユーザ作成も同時に行うこともできるけれど、個人的には、2文に分けた方が設定がわかりやすくて安心できる。

    例)DBとユーザを作り、DBにユーザの権限を付ける。

    create database dbname;
    create user 'user_name'@'localhost' IDENTIFIED BY 'password';
    grant all on 'dbname'.* TO 'user_name'@'localhost';
    • dbname は、データベース名を入れる
    • user_name は、ユーザ名を入れる
    • user_name は、ユーザ名を入れる
  • GASからCloud SQL(MySQL)にSSL接続するコード

    Google Apps Scripsから、Google Cloud SQLのMySQLにSSL(TLS)で通信を暗号化して接続するコードのサンプル。このとき、Cloud SQLのMySQLは、MySQL 5.7よりも古くないと接続できない。

    DBへの接続は、JDBCを使用する。このとき、JDBCの読み込みは必要なく、GASのエディタ上で直接記述してよい。このサンプルでは、SSL(TLS)を使用するバージョン。接続にPEMファイルを使うため、あらかじめGoogle Cloud SQL側で発行しておく必要がある。

    記載するPEMファイルの中身は、末尾に改行コードを表す”\n”をいれて、さらにコード上の改行を明示的にするために”\”を入れる必要があった。なので、PEMファイルの中身の末尾が”\n\”になっている。

    接続のチェックのため、コンソールログに、いろいろと書き出すようにしている。Logの部分はなくても、問題なし。

    サンプルコード。

    function myFunction() {
      dbConnection();
    }
    
    // --------------------------------
    // SSLで接続する
    // --------------------------------
    function dbConnectionSSL(){
    
      Logger.log('start dbConnection function.');
    
      // 接続先設定
      var connectionIp = 'xxx.xxx.xxx.xxx'; // 接続のMysqlのIPアドレス(ホスト名も可)
      var userName = 'user'; // 接続で使うユーザ名
      var passwd = 'pass'; // 接続で使うパスワード
      var databaseName = 'dbname'; // データベース名
    
      var addr = 'jdbc:mysql://' + connectionIp + '/' + databaseName + '?useSSL=true';
    
      // SSL用の証明書を変数に入れる
      var clientKey = '\
    -----BEGIN RSA PRIVATE KEY-----\n\
    MIIEowIBAAKCAQEAyDuIOE1t/ABFSMIz/2Ni4vIoaNvBkDLaeJdl6KmeK9iexl2D2d\n\
    ~~~中略~~~
    P8B5s7xmSbH4Yv/OeKrw8F6xAmoQmWVlnw686I0QqNHexlwIe3lss2LDEI3d\n\
    -----END RSA PRIVATE KEY-----';
    
      var clientCert = '\
    -----BEGIN CERTIFICATE-----\n\
    MIIDVzCCAj+gAwIBAgIEJD9I+TANBgkqhkiG9w0BAQsFADB7MS0wKwYDVQQuEyRl\n\
    ~~~中略~~~
    QNwLDry8Tk3DwnD07+dkQf+FFFu943GFUlY9d4Rv75S+Vwm2Ci2azIRR2Q==\n\
    -----END CERTIFICATE-----';
    
      var serverCa = '\
    -----BEGIN CERTIFICATE-----\n\
    MIIDfzCCAmegAwIBAgIBADANBgkqhkiG9w0BAB3MS0wKwDELW39xwSDyQ3ZjVm\n\
    ~~~中略~~~
    bfgDM8ARAAqMqECaXYC8+xHviva4ON6weeD/wsdessDP9K3ws3mGKbbjlLmc=\n\
    -----END CERTIFICATE-----';
    
      Logger.log('start mysql con');
      Logger.log(addr);
    
      var connectionInfo = {
        user: userName,
        password: passwd,
        _serverSslCertificate: serverCa,
        _clientSslCertificate: clientCert,
        _clientSslKey: clientKey
      }
      Logger.log(connectionInfo);
    
      var connection = Jdbc.getConnection(addr, connectionInfo);
      Logger.log(connection.getCatalog());
    
      // コネクションを閉じる
      connection.close();
      Logger.log('end');
    }

  • OpenSSLでCSRを発行したときに”.rnd”が開けないというエラーが出た

    OpenSSLでCSRを発行したときに”.rnd”が開けないというエラーが出た。エラーは出たが、CSRファイル自体は出力できた。

    Can't load /root/.rnd into RNG
    140466838241728:error:2406F079:random number generator:RAND_load_file:Cannot open file:../crypto/rand/randfile.c:88:Filename=/root/.rnd

    毎回エラーがでると、ドキッとするので、エラーが出ないようにした。

    `/etc/ssl/openssl.cnf `を開いて、下記の行をコメントアウトした。

    RANDFILE                = $ENV::HOME/.rnd

    これでコマンドを実行してもエラーが表示されなくなった。

  • .NET6で、gitignoreを生成する

    .NET6SDKがインストールされていれば、コマンドを実行するだけでgitignoreを生成できる。

    プロジェクトの状況を見ているわけではなく、テンプレートを生成してくれるだけなので、後から実態に合わせて編集する必要はある。それから、空のフォルダ上でも、”.gitgnore”は生成できる。

    PS C:\Dev\test> dotnet new gitignore 
    .NET 6.0 へようこそ! 
    --------------------- 
    SDK バージョン: 6.0.100 
    テレメトリ 
    --------- 
    .NET ツールは、エクスペリエンスの向上のために利用状況データを収集します。データは Microsoft によって収集され、コミュニティと共有されます。テレメトリをオプトアウトするには、好みのシェルを使用して、DOTNET_CLI_TELEMETRY_OPTOUT 環境変数を '1'  または 'true' に設定できます。 
    .NET CLI ツールのテレメトリの詳細をご覧ください: https://aka.ms/dotnet-cli-telemetry 
    ---------------- 
    ASP.NET Core の HTTPS 開発証明書をインストールしました。 
    証明書を信頼するには、'dotnet dev-certs https --trust' (Windows および macOS のみ) を実行します。 
    HTTPS の詳細については、https://aka.ms/dotnet-https を参照してください 
    ---------------- 
    最初のアプリを作成するには、https://aka.ms/dotnet-hello-world を参照してください 
    最新情報については、https://aka.ms/dotnet-whats-new を参照してください 
    ドキュメントを探索するには、https://aka.ms/dotnet-docs を参照してください 
    GitHub で問題の報告とソースの検索を行うには、https://github.com/dotnet/core を参照してください 
    'dotnet --help' を使用して使用可能なコマンドを確認するか、https://aka.ms/dotnet-cli にアクセスしてください 
    -------------------------------------------------------------------------------------- 
    テンプレート "dotnet gitignore ファイル" が正常に作成されました。 
    PS C:\Dev\test>

    初回のみ、いろいろと表示された。コマンドの実行の2回目からは、「テンプレート “dotnet gitignore ファイル” が正常に作成されました。」とだけ表示される。

  • MySQLをSSLで接続するときのポート番号

    メモとして。

    MySQLデータベースに接続するとき、SSL接続のオプションを使うとき、何番ポートを使っているのか。ファイアウォールの許可などもあるので、調べてみた。

    MySQLに接続するとき、SSLのオプションをつけても、つけなくても、同じ3306番ポートを使っている。設定で3306番から変更している場合には、そのポート番号で受け付ける。

  • Visual Studio 2019で.net6のアプリは開発できない。

    Visual Studio 2019と .net6 の組み合わせで開発できるかを試そうとしたのだが、.net6のダウンロードページには、Visual Studio 2019 は入っておらず、Visual Studio 2022からだった。

    https://dotnet.microsoft.com/download/dotnet/6.0

    .net6 のVisual Studioのサポートバージョン

    Visual Studio support
    Visual Studio 2022 (v17.0)
    Visual Studio 2022 for Mac (v17.0)

    https://dotnet.microsoft.com/download/dotnet/6.0

    ダメ元で、.net6をインストールして、Visual Studio 2019 を立ち上げて、新規プロジェクトを作ろうとしたが、core 3.1か. net5しか選択できなかった。

    .net6 のプレビュー版では、Visual Studio 2019が使えたところがあったので、対応するかと思っていたのだが、対応せず。Visual Studioのバージョンアップも必要だ。

  • さくらインターネットのVPSでは、IPv6は有効にする作業が必要。

    メモとして。さくらインターネットのVPSで、Ubuntu 20.04を立ち上げたが、IPv6のIPアドレスがインターフェースで有効になっていない。IPv6のアドレスは、「2017/4/18より 標準OSインストールにて新規にインストールされるOSはIPv6の設定が無効化されています。」とのこと。手動で、IPv6のアドレスの有効にする作業を行う必要あり。

    手順は、公式(↓)でアナウンスされているので、それに従う。

    https://manual.sakura.ad.jp/vps/network/ipv6/ubuntu20.html

    前にインストールしたときは、IPv6のアドレスが自動的に使えるようになっていたという記憶は間違えじゃなかった。

  • メモ:GitLab 14.3.3-CE から GitLab 14.4.2-CEへの更新

    GitLab 14.3.3-CE から GitLab 14.4.2-CEへのaptを使ったアップデートは、エラーなく、apt upgradeだけで更新できた。

    マイナーアップデートなので、問題なし。

  • Windows11からWindows2000にリモートデスクトップ接続ができた

    テストができる環境があったので、Windows11のリモートデスクトップクライアントを使って、Windows2000にリモートデスクトップ接続を試してみた。試したところ、あっさりと接続ができた。

    Windows Server 2003にも、Windows11からリモートデスクトップ接続はできた。

    UIは変わっているけれど、いまのところWindows10と大差がない感じだ。Windows11は、レガシーなシステムの管理にも使えそうでよかった。