Mac に Java をインストールして jks(キーストア)を作成するまで

Mac に Java をインストールして jks(キーストア)を作成するまで

January 20, 2022

(実施した時のメモ)

Java をインストールする #

Homebrew で openjdk をインストールする。

brew install openjdk

インストール中に以下のメッセージが表示される。

For the system Java wrappers to find this JDK, symlink it with
  sudo ln -sfn /usr/local/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk

openjdk is keg-only, which means it was not symlinked into /usr/local,
because macOS provides similar software and installing this software in
parallel can cause all kinds of trouble.

If you need to have openjdk first in your PATH, run:
  echo 'export PATH="/usr/local/opt/openjdk/bin:$PATH"' >> ~/.zshrc

For compilers to find openjdk you may need to set:
  export CPPFLAGS="-I/usr/local/opt/openjdk/include"

openjdk は keg-only とのこと。keg-only は Homebrew の用語で「インストール時に自動ではパスを通さないもの」の様子。

  • Homebrew はビール関連のワードを度々用いるが Keg(ケグ)は以下らしい。
  • https://en.wikipedia.org/wiki/Keg
  • これはビールの容器かな??容器だけの提供(keg-only)だから自動でパスは通さないよということ?

試しに以下を実行してみるとパスが通っていないことがわかる。

java --version

> The operation couldn’t be completed. Unable to locate a Java Runtime.
> Please visit http://www.java.com for information on installing Java.

openjdk が出力したメッセージの中にも記載がある通り、以下を実行してシンボリックリンクを貼る。

sudo ln -sfn /usr/local/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk

その後再び java --version すると今度は正常に結果が表示されるはず。

おまけ #

証明書を作成する #

以下でキーストア (jks)を作成する。

keytool -genkey -v -keystore [ファイル名].jks -keyalg RSA -keysize 2048 -validity 10000 -alias [エイリアス名]

# ファイル名やエイリアス名の具体例
keytool -genkey -v -keystore mykey.jks -keyalg RSA -keysize 2048 -validity 10000 -alias mykey

上記コマンドを実行するとウィザードに質問されるので回答する。(organizational unit などは未入力で大丈夫)

Enter keystore password: ********(パスワード)
Re-enter new password: ********
What is your first and last name?
  [Unknown]: Jane Doe
What is the name of your organizational unit?
  [Unknown]:
What is the name of your organization?
  [Unknown]:
What is the name of your City or Locality?
  [Unknown]:
What is the name of your State or Province?
  [Unknown]: Tokyo
What is the two-letter country code for this unit?
  [Unknown]:  JP
Is CN=Jane Doe, OU=Unknown, O=Unknown, L=Unknown, ST=Tokyo, C=JP correct?
  [no]:  y

Generating 2,048 bit RSA key pair and self-signed certificate (SHA256withRSA) with a validity of 10,000 days
  for: CN=Jane Doe, OU=Unknown, O=Unknown, L=Unknown, ST=Tokyo, C=JP
[Storing mykey.jks]

コマンドを実行したカレントディレクトリに ****.jks が作成されている。