質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

VirtualBox

VirtualBoxは、現在米オラクル社が開発している、 x86仮想化ソフトウェア・パッケージの一つです。

Q&A

0回答

662閲覧

Win10+VirtualBox+Ubuntuでhttpsダウンロードが壊れるのを直したい

FugahogeDS

総合スコア23

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

VirtualBox

VirtualBoxは、現在米オラクル社が開発している、 x86仮想化ソフトウェア・パッケージの一つです。

1グッド

0クリップ

投稿2020/06/23 00:48

編集2020/06/23 23:53

なにを知りたいのか?

Dockerのインストールをfoculにて行おうと思い、 https://get.docker.com/ のスクリプトを流し込んだ際に気づいたのですが、どうもhttpsでのダウンロードがおかしいという状況になっています。
これで直せる、という確実性のあるものが見つけられず困っております。どなたか情報をお持ちでないでしょうか?

利用環境

  • Ubuntu 20.04(仮想マシンイメージ、mac/winともに同じイメージ使用)
  • VirtualBox 6.1.10
  • ホスト: Windows10 2004およびmacOS Catalina
    • (Win)Hyper-V: 有効・無効関係なし ※ Win10は第7世代i5使用のノート
    • macOS上のVirtualBoxでは異常なしの模様 ※ macOSは第10世代i7使用のmac

このエラーについてはいろんなところで報告があり、 gcryptの異常ということで /etc/gcrypt/hwf.deny ファイルを作成(中身はall)することで対応できるというのがありますが、それでも失敗します。

なにが起きるのか

具体的には、Win10上のVirtualBoxに入れたUbuntu内で、wgetやcurlを使って、Dockerのリポジトリからファイルをダウンロードすると、同じURLからなのにハッシュが一致しないということが起きます。

$ wget -nv -O- https://download.docker.com/linux/ubuntu/dists/focal/pool/stable/amd64/containerd.io_1.2.13-2_amd64.deb | md5sum 2020-06-23 09:21:58 URL:https://download.docker.com/linux/ubuntu/dists/focal/pool/stable/amd64/containerd.io_1.2.13-2_amd64.deb [21420058/21420058] -> "-" [1] dbb9cb9d7e43805afe5ff9f32af9a0ea - $ wget -nv -O- https://download.docker.com/linux/ubuntu/dists/focal/pool/stable/amd64/containerd.io_1.2.132_amd64.deb | md5sum 2020-06-23 09:22:01 URL:https://download.docker.com/linux/ubuntu/dists/focal/pool/stable/amd64/containerd.io_1.2.13-2_amd64.deb [21420058/21420058] -> "-" [1] bea16c6c66afe4e314a9c09208852b83 -

ベアメタルなUbuntu(Pi4上)では当然想定される同じものになります。
mingw64のcurl+md5sumでも同様に同じ値が取得できてます。

まさかと思って、自前のサーバー上で検証してみたところ、httpでのダウンロードでは壊れていないようです。Dockerのサイトだからとかそういうレベルでもない模様です。

# サーバー側にDockerから落としたdebをリネームして配置してます $ md5sum /var/www/html/docker/engine.deb /var/www/html/wordpress/engine.deb 4d1ff817bbaadb641ee15ffa67d1b964 /var/www/html/docker/engine.deb # http用 4d1ff817bbaadb641ee15ffa67d1b964 /var/www/html/wordpress/engine.deb # https用 # Win10+VirtualBox上のUbuntuにてダウンロード # httpで2回ダウンロード: 正常 $ curl -sL http://static.example.com/docker/engine.deb | md5sum 4d1ff817bbaadb641ee15ffa67d1b964 - $ curl -sL http://static.example.com/docker/engine.deb | md5sum 4d1ff817bbaadb641ee15ffa67d1b964 - # httpsで3回ダウンロード: 破損 $ curl -sL https://blog.example.com/engine.deb | md5sum bced91f8b3b84aeeeb61beb9b2af1545 - $ curl -sL https://blog.example.com/engine.deb | md5sum 4d1ff817bbaadb641ee15ffa67d1b964 - # たまたま正解することもある $ curl -sL https://blog.example.com/engine.deb | md5sum b57ee586bfadc9ed1eba60c9d0e6aa3b -

ここには出していませんが、ファイルサイズは元のママです。もちろんhttpsでダウンロードした破損したと思われるdebファイルではインストール中に内包するアーカイブが破損しているため失敗しています。
ここには出しませんが、全部NULL(0x00)で埋め尽くした16MBのファイルもhttpsを経由させたら破損して居ることも確認しています。

この問題は、macOS上のVirtualBoxを使う分には問題は発生しておりません。

可能性としては、VirtualBoxとWin10の問題の複合型が考えられるのですが、「これをすれば確実におかしくなる」という決め手も欠けており、非常に困っております。

追記(2020/6/24)

返信いただいた中で、NATの利用を指摘されて「もしかしてNATが処理できてない?」とか思ったので、ブリッジモードに変更して試してみました。自動設定だとプロキシ設定も入ってしまう環境のため(影響ないとは思いますが)念のためプロキシをオフにするように環境変数を封じた状態で試しました。

結果として変わらずで、ダウンロードのたびにMD5が変わっています。

$ http_proxt= https_proxy= curl -sL https://download.docker.com/linux/ubuntu/dists/focal/pool/stable/amd64/containerd.io_1.2.13-2_amd64.deb | md5sum cd9d232f5ea9f1968bccb88e1ef027a3 - $ http_proxt= https_proxy= curl -sL https://download.docker.com/linux/ubuntu/dists/focal/pool/stable/amd64/containerd.io_1.2.13-2_amd64.deb | md5sum 516a720848cd4c3faeaa7708177d7377 - $ http_proxt= https_proxy= curl -sL https://download.docker.com/linux/ubuntu/dists/focal/pool/stable/amd64/containerd.io_1.2.13-2_amd64.deb | md5sum 429cdce00015e99a4cadc35e940a2c82 -
YutaSakurai👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Mashiro

2020/06/23 11:53

ネットワークの設定はNAT?
FugahogeDS

2020/06/23 18:41

はい、デフォルトのNATモードでの利用(10.0.2.15とか)です。ブリッジでしないといけないとかでしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問