Personal Information Exchange (PFX) 証明書を使用して HTTPS 経由で Jira を実行する方法
プラットフォームについて: Data Center - この記事は、Data Center プラットフォームのアトラシアン製品に適用されます。
このナレッジベース記事は製品の Data Center バージョン用に作成されています。Data Center 固有ではない機能の Data Center ナレッジベースは、製品のサーバー バージョンでも動作する可能性はありますが、テストは行われていません。サーバー*製品のサポートは 2024 年 2 月 15 日に終了しました。サーバー製品を利用している場合は、アトラシアンのサーバー製品のサポート終了のお知らせページにて移行オプションをご確認ください。
*Fisheye および Crucible は除く
アトラシアンの製品はSSLに対応しています。しかし、アトラシアンのサポートはその設定に対して支援は行いません。したがって、アトラシアンは、そのためのサポートの提供を保証できません 。
- SSL証明書の変更に際してサポートが必要であれば、証明書の提供元のベンダーに相談してください。
- 設定に関してサポートが必要であれば、Atlassian Answers に質問をあげてください。
説明
Certificates with the extension .pfx
or .p12
usually use PKCS12 as its encryption mechanism and this type of certificate is possible to be used in JIRA/Tomcat without any conversion.
Usually, certificates generated by Microsoft's Certification Authority console use PKCS12.
症状
The stack trace is shown in atlassian-jira.log
:
14-Sep-2016 14:30:34.884 SEVERE [main] org.apache.coyote.AbstractProtocol.init Failed to initialize end point associated with ProtocolHandler ["http-bio-xxxx"]
java.io.IOException: Failed to load keystore type JKS with path \\xxx\xxx\xxx\xxx.pfx<file://xxx/xxx/xx/xx.pfx> due to Illegal character in path at index 0: \\xx\xx\xx\xx.pfx<file://xx/xx/xx/xx.pfx>
Improvement on the stack trace part to avoid any misleading information - JRA-62540 - Getting issue details... STATUS
診断
You can check the Keystore type of your certificate using the following keytool command "keytool -list -keystore path_to_certificate.pfx -storetype PKCS12"
and in case it's indeed PKCS12 you'll see the following output:
$ keytool -list -keystore cert.pfx -storetype PKCS12
Enter keystore password:
Keystore type: PKCS12
Keystore provider: SunJSSE
Your keystore contains 1 entry
ソリューション
- Jira をシャットダウンします。
Adjust your SSL connector into the server.xml file (located $JIRA_Install/conf). This is an example of SSL connector using keystoreType="PKCS12":
JIRA 6.x - 7.11.x:
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxHttpHeaderSize="8192" SSLEnabled="true" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" acceptCount="100" scheme="https" secure="true" keystoreFile="C:\path_to_cert\certificate.pfx" keystorePass="certificate_password" keyAlias="1" keystoreType="PKCS12" clientAuth="false" connectionTimeout="20000" sslProtocol="TLS" useBodyEncodingForURI="true"/>
JIRA 7.12.1+:
<Connector port="443" relaxedPathChars="[]|" relaxedQueryChars="[]|{}^\`"<>" protocol="org.apache.coyote.http11.Http11NioProtocol" maxHttpHeaderSize="8192" SSLEnabled="true" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" acceptCount="100" scheme="https" secure="true" keystoreFile="C:\path_to_cert\certificate.pfx" keystorePass="certificate_password" keyAlias="1" keystoreType="PKCS12" clientAuth="false" connectionTimeout="20000" sslProtocol="TLS" useBodyEncodingForURI="true"/>
Notice that the keyAlias parameter is not always 1. Every key has a different keyAlias.
Jira を再起動します。
Currently, this is the only way to configure JIRA with a PKCS12 certificate, but there is already an improvement request opened to add it to JIRA Configuration Tool.