簡単な質問:httpsを使用できるすべてのプログラム(wget、curlなど)はLinuxで完全に動作しますが、hpuxでは不便です。以下を使用してこの例を参照してください。https://google.com
Linuxで
wget https://www.google.com/
--2018-12-04 16:47:27-- https://www.google.com/
Resolving www.google.com... 64.233.166.99, 64.233.166.106, 64.233.166.105, ...
Connecting to www.google.com|64.233.166.99|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: 'index.html'
index.html [ <=> ] 11.78K --.-KB/s in 0.01s
2018-12-04 16:47:27 (949 KB/s) - 'index.html' saved [12063]
ファイルを受け取りました。
HP-UXで
wget https://www.google.com/
--2018-12-04 16:48:46-- https://www.google.com/
Resolving www.google.com (www.google.com)... 64.233.166.99, 64.233.166.106, 64.233.166.105, ...
Connecting to www.google.com (www.google.com)|64.233.166.99|:443... connected.
ERROR: The certificate of 'www.google.com' is not trusted.
ERROR: The certificate of 'www.google.com' doesn't have a known issuer.
ERROR: The certificate of 'www.google.com' was signed using an insecure algorithm.
私は何も得られませんでした。
私はコマンドを実行します
c_rehash
そして
/usr/local/bin/c_reash
しかし、何も変わりません。
答え1
背景
Linuxでは、使用しているLinuxディストリビューションによっては、デフォルトで信頼できる最新のルート証明書セットが通常ディレクトリまたはファイルに存在する可能性が/etc/ssl/certs/
あります。/etc/pki/tls/certs/ca-bundle.crt
HP-UXの同等のディレクトリは、OpenSSLのHPe提供のバージョンを使用するのか、それともサードパーティのバージョンを使用するのかによって異なり/opt/openssl/certs/
ます。/usr/local/etc/ssl/certs
多くのLinuxディストリビューションでは、Mozilla Firefoxブラウザの証明書と同じ信頼できるルート証明書セットを使用すると思います。
HP-UXでは、信頼できるルート証明書のデフォルトセットがはるかに小さくなる可能性があり、オペレーティングシステムに一部の中央インターネットストアから自動的に更新を提供するツールが含まれていないため、信頼できるルート証明書セットが古くなっている可能性があります。パッチアクセスにはサポートされているプロトコルが必要です)また、HPが提供していないOpenSSLバージョンを使用している可能性があります。
このc_rehash
コマンドは証明書を自動的に更新しません。ただ現在のディレクトリ(または指定されたディレクトリ)内の単一ファイルからSSL証明書を取得し、証明書の8桁の16進ハッシュで、Dは10進数(通常は0)HHHHHHHH.D
に似た名前の対応するシンボリックリンクを作成/更新します。HHHHHHHH
ただし、同じハッシュを持つ複数の証明書がある場合は増加します。 OpenSSLは、これらのリンクを使用してディレクトリ内のすべてのファイルを検索したり、ファイルからリンクされているすべての証明書を検索するよりも早く正しいルート証明書を見つけますca-bundle.crt
。
c_rehash
証明書が含まれていないディレクトリで実行すると、何もしません。証明書を含むディレクトリで実行しますが、OpenSSLが信頼できる証明書を取得するように設定されたディレクトリではない場合、生成されるリンクはあまり役に立ちません。
修理する
適切なルート証明書を識別するために使用しているTLS / SSLサービスの証明書を確認し、そのルート証明書の公開部分を取得する方法を見つける必要があります(たとえば、Webブラウザの証明書ストアからエクスポート)。または、既に良いルート証明書セットを持つWebブラウザを使用して安全なWebページからダウンロードします。たとえば、Google のルート証明書ここで見つけることができます。
必要なルート証明書を取得したら、アプリケーションで使用されているOpenSSLのバージョン(たとえば)を確認する必要がありますldd $(which wget) | grep ssl
。一般的な選択はHPのOpenSSLであり、通常は次のように使用できます/opt
。HP-UX移行およびアーカイブセンター/usr/local
本当に古いバージョンではない限り、通常は以下のバージョンです。
次に、証明書を適切なディレクトリに配置して実行します。c_rehash
この特定のディレクトリについて。