Eclipse + Tomcat でSSLを設定する【keytoolで自己証明書を作成】

当ページのリンクには広告が含まれています。
Eclipseの設定画面でSSLを有効化し、自己署名証明書を使ってローカル開発環境をHTTPSで利用する方法を示したアイキャッチ画像

本番環境ではないローカルの開発環境でも、httpsでアクセスしないと動作確認できない場面がありますよね。CookieのSecure属性が絡む処理や外部API連携のコールバックURLなどが典型例です。

今回はPleiades All in One(Eclipse + Tomcat)の構成でSSLを設定した手順をまとめます。JDKに同梱されているkeytoolコマンドで自己証明書(いわゆるオレオレ証明書)を作成しTomcatのserver.xmlに設定するだけなので、それほど難しくはありません。

この記事では Eclipse上で動かすローカル開発環境をHTTPS(SSL/TLS)対応させる方法を解説します。SSLエラーの対処ではなく、開発用の証明書を作成してHTTPS通信を有効化する手順です。

Eclipse上のTomcatをHTTPS化するにはkeytoolでlocalhost用の自己署名証明書を作成しserver.xmlの8443ポートへキーストアを設定します。Java 21ではキーストア形式の既定値がPKCS12なので、この記事のようにJKSを使う場合は-storetype JKSを明示しておくのが確実です。

検証環境(確認日:2025年12月)
  • MacBookAir M1, 2020
  • macOS Sequoia 15.4.1
  • Pleiades All in One Eclipse 2025-09
  • Tomcat 8.5
  • Java 21
目次

この記事でわかること

  • keytoolを使った自己証明書(JKSファイル)の作成手順
  • TomcatのSSL設定(server.xmlの書き方)
  • ブラウザで警告が出たときの対処と証明書の確認方法

keytool で自己証明書を作成する

JDKまたはJREのbinディレクトリにkeytoolが含まれています。WindowsでもmacOS/Linuxでも基本的に同じコマンドで作成できます。

keytoolの公式ドキュメントもどうぞ。

Step
keytool のある場所を確認する

Pleiades All in One を使っている場合、JDKはpleiades/java/以下に含まれています。コマンドプロンプト(またはターミナル)でそのbinディレクトリに移動します。

cd C:\pleiades\java\21\bin

Pleiades以外のJDKを使っている場合はインストールディレクトリ内のbinに同様にkeytoolがあります。

Step
keytool コマンドを実行する

-keystoreに出力するファイル名を指定します。ここではdev_ssl.jksという名前で作成します。

コマンド
.\keytool -genkeypair -alias tomcat -keystore dev_ssl.jks -storetype JKS -keyalg RSA -ext "SAN=dns:localhost,ip:127.0.0.1" -validity 365

macOS/Linuxの場合は.\ではなく./です。

Step
パスワードを設定する

キーストアに設定するパスワードを入力します。6文字以上である必要があります。このパスワードは後ほどserver.xmlに設定するので控えておきます。

コマンド
キーストアのパスワードを入力してください:
新規パスワードを再入力してください:
Step
証明書の属性情報を入力する

姓名・組織名・国コードなどを順番に聞かれます。開発環境用なので適当な値で問題ありません。空白のままEnterでもOKです。

コマンド
姓名は何ですか。
  [Unknown]:  test1
組織単位名は何ですか。
  [Unknown]:  test2
組織名は何ですか。
  [Unknown]:  test3
都市名または地域名は何ですか。
  [Unknown]:  test4
都道府県名または州名は何ですか。
  [Unknown]:  test5
この単位に該当する2文字の国コードは何ですか。
  [Unknown]:  jp
Step
確認

最後に確認が出るのでYを入力して次に進みます。

コマンド
CN=test1, OU=test2, O=test3, L=test4, ST=test5, C=jpでよろしいですか。
  [いいえ]:  Y
Step
鍵パスワードの入力

<mykey>の鍵パスワードを求められます。キーストアと同じパスワードでよければそのままEnterを押します。

コマンド
<mykey>の鍵パスワードを入力してください
        (キーストアのパスワードと同じ場合はRETURNを押してください):
Step
作成完了

コマンドを実行したbinディレクトリにdev_ssl.jksが生成されています。このファイルはWebの公開エリア外に移動しておきます。

作成時に以下のような警告が表示されますが、開発用なので無視して問題ありません。

Warning:
JKSキーストアは独自の形式を使用しています。”keytool -importkeystore -srckeystore dev_ssl.jks -destkeystore dev_ssl.jks -deststoretype pkcs12″を使用する業界標準の形式であるPKCS12に移行することをお薦めします。

この警告はJKS形式がPKCS12形式より古い独自仕様であることを示しています。本番環境であれば移行を検討すべきですが、開発用の自己証明書としてはJKSのままで動作します。

Tomcatに証明書を設定する(server.xml の編集)

server.xmlに SSLのコネクター設定を追記します。

Eclipse環境であればプロジェクト・エクスプローラー → Servers → server.xmlをダブルクリックで開くのが手っ取り早いです。

既存の8080ポートのConnectorタグの直後に以下を追加します。

server.xml
<!-- デフォルトで存在する8080ポートの設定 -->
<Connector connectionTimeout="20000" maxParameterCount="1000"
           port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

<!-- 追加するSSLの設定 -->
<Connector
    port="8443"
    protocol="HTTP/1.1"
    SSLEnabled="true"
    scheme="https"
    secure="true"
    keystoreFile="【証明書のファイルパス】"
    keystorePass="【証明書のパスワード】"
    keystoreType="JKS"
    keyAlias="tomcat" />
  • port
    SSLでアクセスするポート番号です。443はOS側でroot/管理者権限が必要になる場合があるため、開発環境では8443を使うのが無難です。
  • keystoreFile
    Step7で移動したdev_ssl.jksのファイルパスを絶対パスまたはTomcatからの相対パスで指定します。
  • keystorePass
    Step3で設定したキーストアのパスワードを指定します。

設定後、EclipseからTomcatを再起動します。

この記事では検証環境としてTomcat 8.5を使用しています。Tomcat 8.5は2024年3月31日にサポート終了しているため、本番環境ではサポート中のバージョンを使用してください。Tomcat 10.1系ではSSL設定の書き方が異なるため後半で補足します。

ブラウザでアクセスして確認する

https://localhost:8443/【アプリのコンテキストパス】でアクセスするとブラウザに警告画面が表示されます。自己証明書のためブラウザが信頼できる証明書と判断できないためです。

「詳細設定」をクリックし、「(ホスト名)にアクセスする」リンクからページへ進みます。

ChromeでlocalhostにHTTPS接続した際にNET::ERR_CERT_AUTHORITY_INVALIDの警告が表示され、「詳細設定」ボタンを赤枠で示した画面
証明書エラーの警告画面で「詳細設定」をクリックします
Chromeで自己署名証明書を使用したlocalhostへのHTTPS接続時に警告の詳細を開き、「localhostにアクセスする」リンクを赤枠で示した画面
自己署名証明書の警告から「localhostにアクセスする」をクリックして先へ進みます

⚠️ この操作は自分で作成した証明書とわかっている開発環境でのみ行ってください。見知らぬサイトでこの警告が出た場合は同様の操作はお勧めしません。

アドレスバーの鍵アイコンから証明書の詳細も確認できます。keytoolで設定した姓名・組織名などが反映されていればOKです。

ブラウザで証明書の内容をみてみる

作成した証明書の内容をブラウザで見てみます。アドレスバーの部分から確認できます。

EclipseでSSL設定したlocalhostをChromeで開き、アドレスバーの「保護されていない通信」から「証明書の詳細」を選択する画面
「保護されていない通信」を開き、「証明書の詳細」をクリックしてSSL証明書を確認します

証明書に設定した内容が見れますね。

Chromeの証明書ビューアで、keytoolで作成した自己証明書の発行先にCN「test1」、O「test3」、OU「test2」が反映されていることを確認する画面
keytoolで入力した姓名・組織名・組織単位が証明書に反映されていることを確認します

よくある質問

「接続がプライベートではありません」警告を毎回スキップするのが面倒

ブラウザに自己証明書をインポートして信頼済みにする方法があります。Chromeの場合は「設定 → プライバシーとセキュリティ → 証明書の管理」から追加できます。開発専用マシンであれば検討してみてください。

Tomcat 10以降でも同じ設定?

Tomcat 10.1ではこの記事のTomcat 8.5と同じkeystoreFile / keystorePassの書き方をそのまま使うのではなくSSLHostConfigCertificateを使う現在の設定方法をおすすめします。Tomcatのバージョンによってserver.xmlの書き方が異なるため、使用しているバージョンを確認してから設定してください。

keytoolが見つからないと言われる

JDKのbinディレクトリにパスが通っていない可能性があります。java -versionが通るか確認し、同じディレクトリのkeytoolを実行してみてください。Pleiades All in One に含まれるJDKのパスはpleiades/java/【バージョン】/binです。


Windowsでkeytoolをどこからでも実行したい場合はPathの仕組みと設定方法をこちらで整理しています。

開発環境でSSLは必須?

全ての開発環境に必須ではありませんが、OAuthやCookie制御などHTTPS前提機能を使うなら必要になると思います。

自己署名証明書でも問題ない?

開発用途ならオレオレ証明書でも問題ありません。本番では正式CA証明書を使用します。


Eclipseまわりの設定やトラブル対処をまとめて確認したい場合はこちらも参考になります。

まとめ

  • keytoolはJDK/JREのbinディレクトリに含まれているよ。
  • -genkeypair -keyalg RSAで自己証明書(JKSファイル)を作成できるよ。
  • server.xmlのConnectorにSSL設定を追加するだけでhttpsが有効になるよ。
  • 開発環境ではポート443より8443を使うほうがトラブルが少ないよ。
  • ブラウザの警告は自己証明書に対する正常な動作だよ。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次