差異處
這裏顯示兩個版本的差異處。
Both sides previous revision 前次修改 下次修改 | 前次修改 | ||
linux:network:mount_https_iso_at_local [2022/11/11 16:57] tony |
linux:network:mount_https_iso_at_local [2023/06/25 09:48] (目前版本) |
||
---|---|---|---|
行 1: | 行 1: | ||
====== Mount Https Iso at local ====== | ====== Mount Https Iso at local ====== | ||
- | Linux有httpfs可以用於mount http iso於本地端,但一直編不出httpfs支援ssl的版本。後來一個同學分享了[[https://github.com/fangfufu/httpdirfs|httpdirfs]]給我,嘗試在Ubuntu 20.04.5 LTS上調整一些code且編譯後,就可以連我們自己簽的https server。本篇文章主要用在記錄過程。 | + | Linux有httpfs可以用於mount http iso於本地端,但一直編不出httpfs支援ssl的版本(請參考後記)。後來一個同學分享了[[https://github.com/fangfufu/httpdirfs|httpdirfs]]給我,嘗試在Ubuntu 20.04.5 LTS上調整一些code且編譯後,就可以連我們自己簽的https server。本篇文章主要用在記錄過程。 |
===== Build ===== | ===== Build ===== | ||
執行make編譯會出現以下錯誤,直接調整Makefile移除-fanalyzer後,就可以正常編譯了: | 執行make編譯會出現以下錯誤,直接調整Makefile移除-fanalyzer後,就可以正常編譯了: | ||
行 6: | 行 6: | ||
cc: error: unrecognized command line option '-fanalyzer' | cc: error: unrecognized command line option '-fanalyzer' | ||
</code> | </code> | ||
- | ====== Modify Code ====== | + | ===== Modify Code ===== |
在執行mount https之後,出現以下錯誤: | 在執行mount https之後,出現以下錯誤: | ||
<code bash> | <code bash> | ||
行 23: | 行 23: | ||
</code> | </code> | ||
改完code重新編譯就成功了。 | 改完code重新編譯就成功了。 | ||
- | ====== Execute Command ====== | + | ===== Execute Command ===== |
<code bash> | <code bash> | ||
# http | # http | ||
行 30: | 行 30: | ||
./httpdirfs -f --cache --insecure-tls --single-file-mode https://10.146.16.150:8443/bootimage/driverdisk.iso /opt/mjgoodman/mnt | ./httpdirfs -f --cache --insecure-tls --single-file-mode https://10.146.16.150:8443/bootimage/driverdisk.iso /opt/mjgoodman/mnt | ||
</code> | </code> | ||
- | ====== Result ====== | + | ===== Result ===== |
{{:linux:network:httpdirfs_result.png|}} | {{:linux:network:httpdirfs_result.png|}} | ||
+ | ===== 後記 ===== | ||
+ | ==== 2022-11-11 ==== | ||
+ | httpfs有支援ssl的版本,但在Ubuntu 20.04要額外安裝libgnutls28-dev,才可以解決gnutls header找不到的問題。另外httpfs2-ssl會檢查hostname與憑證是否合法,我有修改程式碼去避免執行verify_certificate_callback,讓我可以完成我的測試。 | ||
===== ===== | ===== ===== | ||
---- | ---- |