第17章 トラブルシューティング
この章では、Certificate System のインストール時に発生する一般的な使用上の問題のいくつかを説明します。
- 問: init スクリプトは OK ステータスを返しましたが、その CA インスタンスは応答しません。理由
- 問: pkiconsole が開かず、stdout に Java 例外が表示される
- 問: pkiconsole の実行を試みたが "Socket exceptions in stdout" が表示される理由
- 問: 証明書の登録を試みたが "request is not submitted…Subject Name Not Found" エラーが表示される
- 問: 登録した証明書が公開されないのはなぜですか。
- 問: リモートホストから pkiconsole ユーティリティーを開く方法
init スクリプトは OK ステータスを返しましたが、その CA インスタンスは応答しません。理由
これは起こらないはずです。通常 (常にではありませんが)、これは CA のリスナーの問題を示しますが、さまざまな原因が考えられます。インスタンスの catalina.out
、システム、およびデバッグログファイルをチェックして、発生したエラーを確認します。これは、いくつかの共通エラーを示しています。1 つの状況は、CA の PID があり、プロセスが実行されているが、サーバーのリスナーが開かれていないことを示している場合です。これにより、catalina.out
ファイルに Java 呼び出しクラスエラーが返されます。
Oct 29, 2010 4:15:44 PM org.apache.coyote.http11.Http11Protocol init INFO: Initializing Coyote HTTP/1.1 on http-9080 java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav64) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav43) at java.lang.reflect.Method.invoke(Method.jav615) at org.apache.catalina.startup.Bootstrap.load(Bootstrap.jav243) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.jav408) Caused by: java.lang.UnsatisfiedLinkError: jss4
これは、JSS または NSS の誤ったバージョンがあることを意味します。このプロセスでは、パスに libnss3.so
が必要です。以下のコマンドでこれを確認します。
# ldd /usr/lib64/libjss4.so
libnss3.so
が見つからない場合は、LD_LIBRARY_PATH
変数の設定を解除して CA を再起動してください。
# unset LD_LIBRARY_PATH
# pki-server restart <instance_name>
pkiconsole
が開かず、stdout に Java 例外が表示される
これはおそらく、間違った JRE がインストールされているか、間違った JRE がデフォルトとして設定されていることを意味します。alternatives --config java
を実行して、選択されている JRE を確認します。Red Hat Certificate System には OpenJDK 1.8 が必要です。
pkiconsole
の実行を試みたが "Socket exceptions in stdout" が表示される理由
これは、ポートに問題があることを意味します。管理ポートの SSL 設定が間違っている (server.xml
の設定が間違っている) か、管理者インターフェイスにアクセスするために間違ったポートが付与されています。ポートエラーは以下のようになります。
NSS Cipher Supported '0xff04' java.io.IOException: SocketException cannot read on socket at org.mozilla.jss.ssl.SSLSocket.read(SSLSocket.jav1006) at org.mozilla.jss.ssl.SSLInputStream.read(SSLInputStream.jav70) at com.netscape.admin.certsrv.misc.HttpInputStream.fill(HttpInputStream.jav303) at com.netscape.admin.certsrv.misc.HttpInputStream.readLine(HttpInputStream.jav224) at com.netscape.admin.certsrv.connection.JSSConnection.readHeader(JSSConnection.jav439) at com.netscape.admin.certsrv.connection.JSSConnection.initReadResponse(JSSConnection.jav430) at com.netscape.admin.certsrv.connection.JSSConnection.sendRequest(JSSConnection.jav344) at com.netscape.admin.certsrv.connection.AdminConnection.processRequest(AdminConnection.jav714) at com.netscape.admin.certsrv.connection.AdminConnection.sendRequest(AdminConnection.jav623) at com.netscape.admin.certsrv.connection.AdminConnection.sendRequest(AdminConnection.jav590) at com.netscape.admin.certsrv.connection.AdminConnection.authType(AdminConnection.jav323) at com.netscape.admin.certsrv.CMSServerInfo.getAuthType(CMSServerInfo.jav113) at com.netscape.admin.certsrv.CMSAdmin.run(CMSAdmin.jav499) at com.netscape.admin.certsrv.CMSAdmin.run(CMSAdmin.jav548) at com.netscape.admin.certsrv.Console.main(Console.jav1655)
証明書の登録を試みたが "request is not submitted…Subject Name Not Found" エラーが表示される
これは、カスタム LDAP ディレクトリー認証プロファイルで最も頻繁に発生し、ディレクトリー操作が失敗したことを示しています。特に、作業 DN を作成できないために失敗しました。このエラーは CA のデバッグログに表示されます。たとえば、このプロファイルは、ディレクトリーを認識しないカスタム属性 (MYATTRIBUTE
) を使用します。
[14/Feb/2011:15:52:25][http-1244-Processor24]: BasicProfile: populate() policy setid =userCertSet [14/Feb/2011:15:52:25][http-1244-Processor24]: AuthTokenSubjectNameDefault: populate start [14/Feb/2011:15:52:25][http-1244-Processor24]: AuthTokenSubjectNameDefault: java.io.IOException: Unknown AVA keyword 'MYATTRIBUTE'. [14/Feb/2011:15:52:25][http-1244-Processor24]: ProfileSubmitServlet: populate Subject Name Not Found [14/Feb/2011:15:52:25][http-1244-Processor24]: CMSServlet: curDate=Mon Feb 14 15:52:25 PST 2011 id=caProfileSubmit time=13
サブジェクト DN で使用されるカスタムコンポーネント (属性、オブジェクトクラス、および未登録の OID) は、障害を引き起こす可能性があります。ほとんどの場合、RHC 2253 で定義されている X.509 属性は、カスタム属性ではなくサブジェクト DN で使用する必要があります。
登録した証明書が公開されないのはなぜですか。
これは通常 CA の設定が間違っていることを示しています。エラーが主にデバッグログで検索され、このログには設定が間違っている場所が示されます。たとえば、以下にはマッパーに関連する問題があります。
[31/Jul/2010:11:18:29][Thread-29]: LdapSimpleMap: cert subject dn:UID=me,E=me@example.com,CN=yes [31/Jul/2010:11:18:29][Thread-29]: Error mapping: mapper=com.netscape.cms.publish.mappers.LdapSimpleMap@258fdcd0 error=Cannot find a match in the LDAP server for certificate. netscape.ldap.LDAPException: error result (32); matchedDN = ou=people,c=test; No such object
CA の CS.cfg
ファイルまたは CA コンソールの Publishing タブで公開設定を確認します。この例では、この問題はマッピングパラメーターにあり、既存 の LDAP 接尾辞を指している必要があります。
ca.publish.mapper.instance.LdapUserCertMap.dnPattern=UID=$subj.UID,dc=publish
リモートホストから pkiconsole
ユーティリティーを開く方法
特定の状況では、管理者はリモートホストから Certificate System サーバー上の pkiconsole
を開く必要があります。このため、管理者は Virtual Network Computing (VNC) 接続を使用できます。
Red Hat Certificate System サーバーなどで VNC サーバーを設定します。リモートデスクトップアクセスの詳細は、Red Hat Enterprise Linux 8 ドキュメントの デスクトップへのリモートアクセス を参照してください。
重要pkiconsole ユーティリティーは、Federal Information Processing Standard (FIPS) モードが有効になっているサーバーでは実行できません。Certificate System サーバーで FIPS モードが有効になっている場合は、Red Hat Enterprise Linux で別のホストを使用して VNC サーバーを実行します。このユーティリティーは非推奨になることに注意してください。
VNC ウィンドウで
pkiconsole
ユーティリティーを開きます。以下に例を示します。# pkiconsole -d nssdb -n 'optional client cert nickname' https://server.example.com:8443/ca
VNC ビューアーは、さまざまなオペレーティングシステムで使用できます。ただし、Red Hat は、統合リポジトリーから Red Hat Enterprise Linux にインストールされた VNC ビューアーのみをサポートします。
- LDAP サーバーが応答しないときにどうすればよいですか。
内部データベースに使用されている Red Hat Directory Server インスタンスが実行されていない場合、接続の問題が発生した場合、または TLS 接続障害が発生した場合、それに依存するサブシステムインスタンスに接続できません。インスタンスのデバッグログは、特に LDAP 接続の問題を特定します。たとえば、LDAP サーバーがオンラインではない場合は、以下のようになります。
[02/Apr/2019:15:55:41][authorityMonitor]: authorityMonitor: failed to get LDAPConnection. Retrying in 1 second. [02/Apr/2019:15:55:42][authorityMonitor]: In LdapBoundConnFactory::getConn() [02/Apr/2019:15:55:42][authorityMonitor]: masterConn is null. [02/Apr/2019:15:55:42][authorityMonitor]: makeConnection: errorIfDown true [02/Apr/2019:15:55:42][authorityMonitor]: TCP Keep-Alive: true java.net.ConnectException: Connection refused (Connection refused) at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.jav350) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.jav206) [02/Apr/2019:15:55:42][authorityMonitor]: Can't create master connection in LdapBoundConnFactory::getConn! Could not connect to LDAP server host example911.redhat.com port 389 Error netscape.ldap.LDAPException: Unable to create socket: java.net.ConnectException: Connection refused (Connection refused) (-1)
抜線された、Red Hat Directory Server が停止した、重大なパケット損失が発生した、または TLS 接続を再作成できることを確認したなど、根本的なネットワークの問題を修正した後、問題の Certificate System インスタンスを停止して開始します。
# systemctl stop pki-tomcatd-nuxwdog@<instance_name>.service
# systemctl start pki-tomcatd-nuxwdog@<instance_name>.service