
Windows 8.1 上で VirtualBox 4.3.12 を実行し、Ubuntu Trusty 32 ビット クライアントを実行しています。
クライアントから HTTPS リソースにアクセスしようとすると、次のようなエラーが表示されます。
Cannot fetch index base URL https://pypi.python.org/simple/
私の知る限り、プロキシは使用されていません。次のようにnetsh winhttp show proxy
表示されます。
Direct access (no proxy server).
ホストから HTTPS リソースに問題なくアクセスできます。ファイアウォールも無効にしました。会社の Symantec 保護がコンピューターにインストールされていますが、ファイアウォールも無効にしました。
何か案は?
答え1
この問題が発生したのは、ホスト コンピューターにクライアントにない CA ルート証明書があったためです。自宅の個人用 WiFi に接続しているときは VM は正常に動作しましたが、オフィスにいるときや VPN に接続しているときは、接続に HTTPS を必要とする Web サイトにアクセスできませんでした。
CentOS ゲストを搭載した Windows 7 ホストの場合は、次の操作を実行しました。
クライアント内から HTTPS Web サイトにアクセスしようとしました。
クライアントが接続を拒否し、証明書が信頼できないソースからのものであると表示されたため、「例外の追加」オプションをクリックしました。実際には例外を追加しませんでしたが、問題を解決するために次のポップアップが必要でした。
「証明書の表示」をクリックしました。証明書発行者私の会社がネットワーク上の安全なトラフィックを処理する方法により、それが私の雇用主であることが判明しました。
Windows ホストに切り替えて、「Certmgr.msc」を起動しました
左側のペインで「信頼されたルート証明機関」アイコンを選択しました。
右側のペインに会社のすべての証明書 (6 つありました) が見つかりました。右クリック -> すべてのタスク -> エクスポートで、一度に 1 つずつエクスポートしました。ウィザードが開き、各証明書に対して「DER エンコード バイナリ」を選択し、証明書を保存する場所としてホストとゲスト間で共有されているディレクトリを選択しました。
ホストに切り替えて、すべての .cer 証明書を次の方法で .pem ファイルに変換しました。
openssl x509 -inform der -in certificate.cer -out certificate.pem
これらをすべて次のディレクトリに配置しました。
/etc/pki/ca-trust/source/anchors/
証明書の更新を実行しました
sudo update-ca-trust
以上です。基本的な問題は、私の職場の IT システムが暗号化されたトラフィックをキャッチして証明書を再発行していたのですが、VM ゲストにルート証明機関として会社の証明書がリストされていなかったため、証明書を必要とするものはすべて信頼できないものとして識別されていたことです。皆さんのお役に立てれば幸いです。
答え2
私も同じ問題に直面しました。Chrome でエラーが表示されたら、エラーをクリックして正確な証明書機関名を探しました。
ホストでは、chrome://settings -> certificates -> authorized に移動して特定のauthorityをエクスポートし、そのファイルをゲスト OS の chrome にインポートしました。