差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

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,讓我可以完成我的測試。
 =====    ===== =====    =====
 ---- ----