Corredor

ウェブ、プログラミングの勉強メモ。

Oracle Cloud 関連サービスで見かけるアイコンの呼称

最近 Oracle Cloud をちょくちょく使っているのだが、管理画面に登場する謎のアイコンが2つあったので、その呼び名を調べてみた。

アクション・アイコン … 3点リーダのアイコン

・・・

こういう3点リーダのアイコンからメニューが開いて、何か操作できたりするモノがある。

コレは、「Action Icon」「アクション・アイコン」と公式で呼ばれていた。

メニュー・アイコン … 4本線の一番上だけ長いヤツ

----------
 --------
 --------
 --------

このように、4本線で、一番上の線だけが長いアイコンも見かける。機能的には前述の「アクション・アイコン」とよく似ていて、押すとメニューが開く。

コレは、ガイドでは「Menu Icon」「メニューアイコン」と呼ばれていた。

ただ、「Cloud My Services」ダッシュボード画面に表示される酷似したアイコンのツールチップは、「アクション・メニュー」と表記されていた。「アクション・アイコン」と「メニュー・アイコン」のハイブリッドがおる……。

以上

3点リーダの Action Icon は OCI (IaaS) でよく見かけて、4本線の Menu Icon は Digital Assistant みたいな PaaS でよく見かける感じがする。

Oracle Cloud サービス群は色んな製品を強引に統合している感じがして、このような UI 面も統一感が少ない。実際の操作上は「アイコンの違い」自体で困ることはほぼないが、そうした細部からの思想がサービスごとに違うので、使っていて違和感が凄い。

ひとまず、オレオレ手順書メモを書いたりする時に何と表現するかの根拠はできたので、これでよき。

ノンデザイナーでもわかる UX+理論で作るWebデザイン

ノンデザイナーでもわかる UX+理論で作るWebデザイン

  • 作者: 川合俊輔,大本あかね,菊池崇
  • 出版社/メーカー: マイナビ出版
  • 発売日: 2017/09/26
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログを見る

外部から Docker コンテナに環境変数を注入する方法

Docker コンテナ内で使用する環境変数を、Docker コンテナ起動時に注入する方法。

DockerfileENV 命令だと切り替えが難しい

Docker コンテナ内で使用する環境変数をどう定義するか、というと、まず思いつくのは DockerfileENV 命令だ。

FROM centos

# 環境変数を設定する
ENV MY_ENV Hello

# Docker ビルド中に環境変数を参照する
RUN env

# Docker コンテナ起動時に環境変数を出力させてみる
CMD ["env"]

確かにコレでも環境変数を定義できるが、異なる環境変数を設定したくなった時は Docker イメージのビルドからやり直す必要がある。環境変数しか違いがないのに Docker イメージをまるっと作り直すのは、思わぬ差分を含めてしまうリスクがあるので避けたい。

-e (--env) オプション

そこで登場するのが -e (--env) オプションdocker run のタイミングでオプション引数として渡せるのだ。

# -e オプションで環境変数を設定しながらコンテナを起動
$ docker run -e MY_ENV=Hello -it my-container bash

# コンテナ内で環境変数が確認できる
$$ echo $MY_ENV

--env-file オプションで一括設定

さらに便利な --env-file オプションというモノもある。コチラは以下のような、いわゆる「Dot Env (.env)」ファイルの形式で用意した環境変数を一括で設定してくれるのだ。

  • my-docker-env.txt
MY_ENV=Hello
MY_ANOTHER_ENV=GoodBye

コレを以下のように読み込ませて使う。

$ docker run --env-file=./my-docker-env.txt -it my-container bash

コレを使えば、

  • ローカル開発中は npm パッケージの dotenv みたいなヤツを使って環境変数を設定して動作確認し、
  • Docker ビルド後はコンテナ起動時に --env-file オプションで読み込ませて動作させる

みたいに切り替えられるだろう。

Dockerによるアプリケーション開発環境構築ガイド

Dockerによるアプリケーション開発環境構築ガイド

MacOS「プレビュー.app」のマークアップツールバーを開くショートカットキー

MacOS の「プレビュー.app」が優秀なので、簡単な画像編集にもちょくちょく使っている。

その際、「マークアップツールバー」の項目を使うことが多いのだが、「プレビュー.app」を再起動するとマークアップツールバーが必ず隠れた状態からになってしまう。

常に開いておくための設定が defaults コマンドにないかなーとか調べたのだが、どうもマークアップツールバーを常に開いておく設定はなさそう。

仕方がないので、マークアップツールバーを開閉するショートカットキーを覚えることにした。

  • Cmd + Shift + A

プレビュー.app を開いたら問答無用で Cmd + Shift + A を叩くことにしよう。

今日から使える MacBook Air & Pro macOS Mojave対応

今日から使える MacBook Air & Pro macOS Mojave対応

JDK 同梱の認証局証明書管理ファイル「cacerts」を見てみる

Java プログラムからとあるサーバ証明書の認証が上手く行かなかったので調べた。

JDK には cacerts というファイルが含まれていて、Java プログラムが動作する時に参照する「ルート認証局」の証明書が管理されているようだった。

ブラウザなんかが持っている認証局情報とはまた違うようなので、どんな認証局が登録されているか確認してみる。

cacerts ファイルの場所

cacerts ファイルは JAVA_HOME 配下、./lib/security/ に格納されている。

MacOS で $ brew cask install java と叩いて、OpenJDK 11.0.2 をインストールした場合のフルパスは以下のようになった。

/Library/Java/JavaVirtualMachines/openjdk-11.0.2.jdk/Contents/Home/lib/security/cacerts

Windows の場合はこんな感じかな。

C:\ProgramFiles\Java\jdk1.8.0_21\lib\security\cacerts

中身を見る

ターミナルで、この ./lib/security/ ディレクトリに移動する。

keytool というコマンドが JDK とともにインストールされていて、PATH が通っていると思うので、このコマンドを使って以下のように叩く。

$ keytool -keystore cacerts -list -v
Picked up _JAVA_OPTIONS: -Dfile.encoding=UTF-8
キーストアのパスワードを入力してください:  # ★ パスワードを入れる

キーストアのパスワードは、デフォルトでは changeit になっているので、コレを入力する。すると大量のデータが出力される。

$ keytool -keystore cacerts -list -v
Picked up _JAVA_OPTIONS: -Dfile.encoding=UTF-8
警告: cacertsキーストアにアクセスするには-cacertsオプションを使用してください
キーストアのパスワードを入力してください:  # ★ 「changeit」と入力する
キーストアのタイプ: JKS
キーストア・プロバイダ: SUN

キーストアには93エントリが含まれます

別名: verisignclass2g2ca [jdk]
作成日: 2018/06/13
エントリ・タイプ: trustedCertEntry

所有者: OU=VeriSign Trust Network, OU="(c) 1998 VeriSign, Inc. - For authorized use only", OU=Class 2 Public Primary Certification Authority - G2, O="VeriSign, Inc.", C=US
発行者: OU=VeriSign Trust Network, OU="(c) 1998 VeriSign, Inc. - For authorized use only", OU=Class 2 Public Primary Certification Authority - G2, O="VeriSign, Inc.", C=US
シリアル番号: b92f60cc889fa17a4609b85b706c8aaf
有効期間の開始日: Mon May 18 09:00:00 JST 1998終了日: Wed Aug 02 08:59:59 JST 2028
証明書のフィンガプリント:
     SHA1: B3:EA:C4:47:76:C9:C8:1C:EA:F2:9D:95:B6:CC:A0:08:1B:67:EC:9D
     SHA256: 3A:43:E2:20:FE:7F:3E:A9:65:3D:1E:21:74:2E:AC:2B:75:C2:0F:D8:98:03:05:BC:50:2C:AF:8C:2D:9B:41:A1
署名アルゴリズム名: SHA1withRSA
サブジェクト公開鍵アルゴリズム: 1024ビットRSA鍵
バージョン: 1


*******************************************
*******************************************


別名: digicertassuredidg3 [jdk]
作成日: 2017/12/01
エントリ・タイプ: trustedCertEntry

所有者: CN=DigiCert Assured ID Root G3, OU=www.digicert.com, O=DigiCert Inc, C=US
発行者: CN=DigiCert Assured ID Root G3, OU=www.digicert.com, O=DigiCert Inc, C=US
# 以下略……

ちなみに、-v オプションを付けないとこんな感じ。

$ keytool -keystore cacerts -list
Picked up _JAVA_OPTIONS: -Dfile.encoding=UTF-8
警告: cacertsキーストアにアクセスするには-cacertsオプションを使用してください
キーストアのパスワードを入力してください:  # ★ 「changeit」と入力する
キーストアのタイプ: JKS
キーストア・プロバイダ: SUN

キーストアには93エントリが含まれます

verisignclass2g2ca [jdk],2018/06/13, trustedCertEntry, 
証明書のフィンガプリント(SHA-256): 3A:43:E2:20:FE:7F:3E:A9:65:3D:1E:21:74:2E:AC:2B:75:C2:0F:D8:98:03:05:BC:50:2C:AF:8C:2D:9B:41:A1
digicertassuredidg3 [jdk],2017/12/01, trustedCertEntry, 
証明書のフィンガプリント(SHA-256): 7E:37:CB:8B:4C:47:09:0C:AB:36:55:1B:A6:F4:5D:B8:40:68:0F:BA:16:6A:95:2D:B1:00:71:7F:43:05:3F:C2
# ……以下略

-v オプションを付けた時の内容は、コレの詳細版だ。

認証局を知る

さて、-v オプションを付けると長すぎてよく分からないが、-v オプションを付けないと認証局がイマイチ分からない。

そこで、grep発行者 の文字を含む行だけ抽出し、sort コマンドで順序を直してみる。

以下は MacOS にインストールした OpenJDK 11.0.2.jdk での結果。

# grep コマンドで結果を絞り、sort コマンドで
$ keytool -keystore cacerts -list -v | grep '発行者' | sort

Picked up _JAVA_OPTIONS: -Dfile.encoding=UTF-8
警告: cacertsキーストアにアクセスするには-cacertsオプションを使用してください
キーストアのパスワードを入力してください:  # ★ 「changeit」と入力する

発行者: CN=AAA Certificate Services, O=Comodo CA Limited, L=Salford, ST=Greater Manchester, C=GB
発行者: CN=Actalis Authentication Root CA, O=Actalis S.p.A./03358520967, L=Milan, C=IT
発行者: CN=AddTrust Class 1 CA Root, OU=AddTrust TTP Network, O=AddTrust AB, C=SE
発行者: CN=AddTrust External CA Root, OU=AddTrust External TTP Network, O=AddTrust AB, C=SE
発行者: CN=AddTrust Qualified CA Root, OU=AddTrust TTP Network, O=AddTrust AB, C=SE
発行者: CN=AffirmTrust Commercial, O=AffirmTrust, C=US
発行者: CN=AffirmTrust Networking, O=AffirmTrust, C=US
発行者: CN=AffirmTrust Premium ECC, O=AffirmTrust, C=US
発行者: CN=AffirmTrust Premium, O=AffirmTrust, C=US
発行者: CN=Baltimore CyberTrust Root, OU=CyberTrust, O=Baltimore, C=IE
発行者: CN=Buypass Class 2 Root CA, O=Buypass AS-983163327, C=NO
発行者: CN=Buypass Class 3 Root CA, O=Buypass AS-983163327, C=NO
発行者: CN=COMODO ECC Certification Authority, O=COMODO CA Limited, L=Salford, ST=Greater Manchester, C=GB
発行者: CN=COMODO RSA Certification Authority, O=COMODO CA Limited, L=Salford, ST=Greater Manchester, C=GB
発行者: CN=Certum CA, O=Unizeto Sp. z o.o., C=PL
発行者: CN=Certum Trusted Network CA, OU=Certum Certification Authority, O=Unizeto Technologies S.A., C=PL
発行者: CN=Chambers of Commerce Root - 2008, O=AC Camerfirma S.A., SERIALNUMBER=A82743287, L=Madrid (see current address at www.camerfirma.com/address), C=EU
発行者: CN=Chambers of Commerce Root, OU=http://www.chambersign.org, O=AC Camerfirma SA CIF A82743287, C=EU
発行者: CN=Class 2 Primary CA, O=Certplus, C=FR
発行者: CN=Class 3P Primary CA, O=Certplus, C=FR
発行者: CN=D-TRUST Root Class 3 CA 2 2009, O=D-Trust GmbH, C=DE
発行者: CN=D-TRUST Root Class 3 CA 2 EV 2009, O=D-Trust GmbH, C=DE
発行者: CN=DST Root CA X3, O=Digital Signature Trust Co.
発行者: CN=Deutsche Telekom Root CA 2, OU=T-TeleSec Trust Center, O=Deutsche Telekom AG, C=DE
発行者: CN=DigiCert Assured ID Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US
発行者: CN=DigiCert Assured ID Root G2, OU=www.digicert.com, O=DigiCert Inc, C=US
発行者: CN=DigiCert Assured ID Root G3, OU=www.digicert.com, O=DigiCert Inc, C=US
発行者: CN=DigiCert Global Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US
発行者: CN=DigiCert Global Root G2, OU=www.digicert.com, O=DigiCert Inc, C=US
発行者: CN=DigiCert Global Root G3, OU=www.digicert.com, O=DigiCert Inc, C=US
発行者: CN=DigiCert High Assurance EV Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US
発行者: CN=DigiCert Trusted Root G4, OU=www.digicert.com, O=DigiCert Inc, C=US
発行者: CN=Entrust Root Certification Authority - EC1, OU="(c) 2012 Entrust, Inc. - for authorized use only", OU=See www.entrust.net/legal-terms, O="Entrust, Inc.", C=US
発行者: CN=Entrust Root Certification Authority - G2, OU="(c) 2009 Entrust, Inc. - for authorized use only", OU=See www.entrust.net/legal-terms, O="Entrust, Inc.", C=US
発行者: CN=Entrust Root Certification Authority, OU="(c) 2006 Entrust, Inc.", OU=www.entrust.net/CPS is incorporated by reference, O="Entrust, Inc.", C=US
発行者: CN=Entrust.net Certification Authority (2048), OU=(c) 1999 Entrust.net Limited, OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.), O=Entrust.net
発行者: CN=GTE CyberTrust Global Root, OU="GTE CyberTrust Solutions, Inc.", O=GTE Corporation, C=US
発行者: CN=GeoTrust Global CA, O=GeoTrust Inc., C=US
発行者: CN=GeoTrust Primary Certification Authority - G2, OU=(c) 2007 GeoTrust Inc. - For authorized use only, O=GeoTrust Inc., C=US
発行者: CN=GeoTrust Primary Certification Authority - G3, OU=(c) 2008 GeoTrust Inc. - For authorized use only, O=GeoTrust Inc., C=US
発行者: CN=GeoTrust Primary Certification Authority, O=GeoTrust Inc., C=US
発行者: CN=GeoTrust Universal CA, O=GeoTrust Inc., C=US
発行者: CN=Global Chambersign Root - 2008, O=AC Camerfirma S.A., SERIALNUMBER=A82743287, L=Madrid (see current address at www.camerfirma.com/address), C=EU
発行者: CN=GlobalSign Root CA, OU=Root CA, O=GlobalSign nv-sa, C=BE
発行者: CN=GlobalSign, O=GlobalSign, OU=GlobalSign ECC Root CA - R4
発行者: CN=GlobalSign, O=GlobalSign, OU=GlobalSign ECC Root CA - R5
発行者: CN=GlobalSign, O=GlobalSign, OU=GlobalSign Root CA - R2
発行者: CN=GlobalSign, O=GlobalSign, OU=GlobalSign Root CA - R3
発行者: CN=Go Daddy Root Certificate Authority - G2, O="GoDaddy.com, Inc.", L=Scottsdale, ST=Arizona, C=US
発行者: CN=ISRG Root X1, O=Internet Security Research Group, C=US
発行者: CN=IdenTrust Commercial Root CA 1, O=IdenTrust, C=US
発行者: CN=IdenTrust Public Sector Root CA 1, O=IdenTrust, C=US
発行者: CN=KEYNECTIS ROOT CA, OU=ROOT, O=KEYNECTIS, C=FR
発行者: CN=LuxTrust Global Root, O=LuxTrust s.a., C=LU
発行者: CN=QuoVadis Root CA 1 G3, O=QuoVadis Limited, C=BM
発行者: CN=QuoVadis Root CA 2 G3, O=QuoVadis Limited, C=BM
発行者: CN=QuoVadis Root CA 2, O=QuoVadis Limited, C=BM
発行者: CN=QuoVadis Root CA 3 G3, O=QuoVadis Limited, C=BM
発行者: CN=QuoVadis Root CA 3, O=QuoVadis Limited, C=BM
発行者: CN=QuoVadis Root Certification Authority, OU=Root Certification Authority, O=QuoVadis Limited, C=BM
発行者: CN=SecureTrust CA, O=SecureTrust Corporation, C=US
発行者: CN=Sonera Class2 CA, O=Sonera, C=FI
発行者: CN=Starfield Root Certificate Authority - G2, O="Starfield Technologies, Inc.", L=Scottsdale, ST=Arizona, C=US
発行者: CN=Starfield Services Root Certificate Authority - G2, O="Starfield Technologies, Inc.", L=Scottsdale, ST=Arizona, C=US
発行者: CN=SwissSign Gold CA - G2, O=SwissSign AG, C=CH
発行者: CN=SwissSign Platinum CA - G2, O=SwissSign AG, C=CH
発行者: CN=SwissSign Silver CA - G2, O=SwissSign AG, C=CH
発行者: CN=T-TeleSec GlobalRoot Class 2, OU=T-Systems Trust Center, O=T-Systems Enterprise Services GmbH, C=DE
発行者: CN=T-TeleSec GlobalRoot Class 3, OU=T-Systems Trust Center, O=T-Systems Enterprise Services GmbH, C=DE
発行者: CN=TeliaSonera Root CA v1, O=TeliaSonera
発行者: CN=Thawte Timestamping CA, OU=Thawte Certification, O=Thawte, L=Durbanville, ST=Western Cape, C=ZA
発行者: CN=USERTrust ECC Certification Authority, O=The USERTRUST Network, L=Jersey City, ST=New Jersey, C=US
発行者: CN=USERTrust RSA Certification Authority, O=The USERTRUST Network, L=Jersey City, ST=New Jersey, C=US
発行者: CN=UTN-USERFirst-Client Authentication and Email, OU=http://www.usertrust.com, O=The USERTRUST Network, L=Salt Lake City, ST=UT, C=US
発行者: CN=UTN-USERFirst-Hardware, OU=http://www.usertrust.com, O=The USERTRUST Network, L=Salt Lake City, ST=UT, C=US
発行者: CN=UTN-USERFirst-Object, OU=http://www.usertrust.com, O=The USERTRUST Network, L=Salt Lake City, ST=UT, C=US
発行者: CN=VeriSign Class 3 Public Primary Certification Authority - G3, OU="(c) 1999 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US
発行者: CN=VeriSign Class 3 Public Primary Certification Authority - G4, OU="(c) 2007 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US
発行者: CN=VeriSign Class 3 Public Primary Certification Authority - G5, OU="(c) 2006 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US
発行者: CN=VeriSign Universal Root Certification Authority, OU="(c) 2008 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US
発行者: CN=XRamp Global Certification Authority, O=XRamp Security Services Inc, OU=www.xrampsecurity.com, C=US
発行者: CN=thawte Primary Root CA - G2, OU="(c) 2007 thawte, Inc. - For authorized use only", O="thawte, Inc.", C=US
発行者: CN=thawte Primary Root CA - G3, OU="(c) 2008 thawte, Inc. - For authorized use only", OU=Certification Services Division, O="thawte, Inc.", C=US
発行者: CN=thawte Primary Root CA, OU="(c) 2006 thawte, Inc. - For authorized use only", OU=Certification Services Division, O="thawte, Inc.", C=US
発行者: EMAILADDRESS=premium-server@thawte.com, CN=Thawte Premium Server CA, OU=Certification Services Division, O=Thawte Consulting cc, L=Cape Town, ST=Western Cape, C=ZA
発行者: OU=Class 3 Public Primary Certification Authority, O="VeriSign, Inc.", C=US
発行者: OU=Go Daddy Class 2 Certification Authority, O="The Go Daddy Group, Inc.", C=US
発行者: OU=Security Communication RootCA1, O=SECOM Trust.net, C=JP
発行者: OU=Security Communication RootCA2, O="SECOM Trust Systems CO.,LTD.", C=JP
発行者: OU=Starfield Class 2 Certification Authority, O="Starfield Technologies, Inc.", C=US
発行者: OU=VeriSign Trust Network, OU="(c) 1998 VeriSign, Inc. - For authorized use only", OU=Class 2 Public Primary Certification Authority - G2, O="VeriSign, Inc.", C=US
発行者: OU=VeriSign Trust Network, OU="(c) 1998 VeriSign, Inc. - For authorized use only", OU=Class 3 Public Primary Certification Authority - G2, O="VeriSign, Inc.", C=US
発行者: OU=ePKI Root Certification Authority, O="Chunghwa Telecom Co., Ltd.", C=TW

コレでかなり把握しやすくなっただろう。DigiCertGlobalSignIdenTrust などが含まれているようだ。

よく分かったのでコレで終わり。

スッキリわかるJava入門 第2版 (スッキリシリーズ)

スッキリわかるJava入門 第2版 (スッキリシリーズ)