瞻新資訊|網站設計、APP開發、UI/UX設計、LINE Bot開發

使用者手機顯示網站不安全警告,同事的桌機開同一個網站卻顯示正常的綠色鎖頭

網站顯示不安全的排查順序:先分流,再看錯誤碼與混合內容

作者|瞻新資訊 張安邦執行長(台大醫工背景・十年以上IT服務公司創辦人)

客戶打電話來:「你們做的那個網站,我剛剛用手機開,跳出不安全欸。」

你馬上用自己的電腦開一次。完全正常,綠鎖好好的。

到這裡,最常見的反應是請對方清一下快取、重開瀏覽器,然後就沒有然後了。問題可能真的消失,也可能過兩天又冒出來——而你始終不知道剛才到底發生了什麼事。

這篇要講的是一套排查順序。重點不在背下所有錯誤訊息,而在第一步就分對方向——因為「只有你看得到」跟「所有人都看得到」,要查的東西完全不一樣,查錯邊會白忙很久。

至於憑證要怎麼買、怎麼續約,那是另一件事,站上另一篇〈SSL 憑證效期剩 200 天:續約、憑證鏈與涵蓋範圍怎麼安排〉有完整說明;要不要導入 HTTPS、對 SEO 有什麼影響,則在〈HTTPS 是什麼?加密原理、SEO影響與網站導入指南〉。這篇只處理一件事:它已經不安全了,怎麼查

第一步不是查原因,是先確認這是誰的問題

大部分人看到警告的直覺動作是清快取。但清快取只解得掉其中一種成因,而且是機率不高的那一種,先做它等於把最不可能的答案排在最前面。

正確的第一步只有一件事:確認這個警告是只有你看得到,還是所有人都看得到。

做法三十秒就能完成,三個動作任選,能做幾個做幾個:

  1. 換一台裝置——用手機的行動網路(不要連公司 Wi-Fi)開同一個網址。
  2. 換一個網路——同一台電腦,改用手機熱點連。
  3. 開無痕視窗——這能排掉擴充功能與部分快取的干擾。

結果只有兩種,而它們指向完全不同的方向:

只有你看得到所有人都看得到
問題出在哪你這台裝置,或你連的這個網路網站本身的設定
典型成因系統時間錯誤、防毒的 HTTPS 掃描、公司網路的安全檢查、瀏覽器擴充功能、舊的快取憑證憑證過期、網址不在憑證涵蓋範圍、憑證鏈不完整、混合內容
該找誰自己或公司 IT網站或主機的負責人
怎麼確認換裝置、換網路、開無痕跑一次第三方 SSL 檢測

💡 小提醒

如果是客戶反映的,請他拍一張完整的錯誤畫面給你,包含網址列與錯誤訊息中那一串英文代碼(例如 `NET::ERR_CERT_DATE_INVALID`)。那串代碼就是答案的一半,光靠「他說不安全」你查不出東西。

一句話收尾三十秒的分流,可以省掉半小時查錯方向

左邊街上只有一戶屋頂亮著紅色警示燈,右邊整條街每一戶都亮著紅色警示燈
只有你看得到代表問題在裝置或網路,所有人都看得到才是網站本身的設定。

只有你看得到:問題在這台裝置或這個網路

如果換了裝置、換了網路就正常,那網站沒問題,問題在原本那台電腦或那個網路環境。依可能性由高到低,有五個嫌疑犯。

① 系統時間跑掉了

憑證是有期限的東西,瀏覽器判斷「現在是不是在有效期內」,用的是你電腦自己的時鐘。時鐘如果差了幾個月甚至幾年,明明有效的憑證也會被判定成過期或尚未生效。

這聽起來很蠢,但在換過主機板電池的舊電腦、重灌後沒設時區的機器上非常常見。先看一眼右下角的日期,兩秒的事。

② 防毒軟體的 HTTPS 掃描

這是最容易被冤枉成「網站壞掉」的一個。

很多防毒軟體有一個功能叫 HTTPS 掃描(名稱各家不同,也可能叫網頁防護、SSL 掃描)。它的運作方式是把你的加密連線攔下來、解開、檢查過內容之後,再用它自己的憑證重新加密一次送給瀏覽器

用個比喻:這像是公司收發室把你的信拆開檢查完,再裝進一個新信封交給你。信的內容沒被改,但信封上的封蠟章已經不是原本寄件人的了。瀏覽器看到不認識的封蠟章,就會說這封信來路不明

在受管的電腦上,這是正常設計,不是故障。判斷方法:暫時停用防毒的網頁防護功能,再開一次網址,好了就是它。

③ 公司網路的安全檢查設備

原理跟上面那條一樣,只是動手的不是你電腦裡的軟體,而是公司網路出口的設備。特徵很明顯:在公司連就出錯,用手機熱點連就正常

這種情況要找公司 IT,不是找網站廠商。通常的處理是把該網站加進白名單,或在受管電腦上安裝公司的根憑證。

④ 瀏覽器擴充功能

某些廣告攔截器、VPN、安全類擴充功能會介入連線。用無痕視窗測試最快——多數擴充功能在無痕模式下預設是關閉的。

⑤ 舊的快取憑證

這就是大家最愛先做的那一個。它確實存在,但排在第五,不是第一。網站換過憑證之後,瀏覽器偶爾會沿用舊的快取資料。清除瀏覽資料(含快取與 SSL 狀態)之後重開,就會重新抓。

⚠️ 注意

上面五個裡面,有三個(防毒掃描、公司網路檢查、擴充功能)是「設計就是這樣」而不是壞掉。如果你在公司的電腦上遇到,先問 IT,不要直接叫網站廠商改東西——他們改不了,因為問題根本不在網站上。

一句話收尾:只有你看得到的時候,先看時間、再看防毒、再看公司網路,清快取放最後

所有人都看得到:從錯誤碼開始對症

如果換了裝置、換了網路還是不安全,那就是網站本身的問題了。

這時候不要亂試,先把錯誤訊息裡那串英文代碼抄下來,它直接告訴你是哪一類問題。常見的幾個整理成表:

錯誤代碼白話意思實際成因誰來修
`ERR_CERT_DATE_INVALID`憑證過期了沒有續約,或自動續約失敗沒人發現網站/主機負責人
`ERR_CERT_COMMON_NAME_INVALID`這個網址不在憑證的保護清單裡只保了 www 沒保裸網域、新增的子網域沒納入、換網域忘記重簽網站/主機負責人
`ERR_CERT_AUTHORITY_INVALID`瀏覽器串不起信任鏈漏裝中繼憑證,或使用自簽憑證網站/主機負責人
沒有代碼,只是網址列標「不安全」連線沒加密,或頁面裡混了沒加密的東西整站還是 HTTP,或有混合內容網站負責人

其中 `ERR_CERT_AUTHORITY_INVALID` 有一個要注意的地方:它如果只在某一台裝置出現,通常不是網站的錯,而是那台裝置上的防毒或公司網路在重新簽章流量(也就是上一節講的那兩種)。同一個代碼,出現在「所有人」跟出現在「只有一台」,成因完全不同——這也是為什麼分流一定要放在最前面。

至於「漏裝中繼憑證」為什麼會造成桌機正常、手機失敗,那牽涉到瀏覽器的自動補件機制,前一篇有完整說明,這裡不重複。

一句話收尾錯誤代碼不是嚇人用的,它是分類標籤,抄下來對照一下就知道要找誰。

四個包裹分別蓋上過期、姓名不符、鏈條斷裂與窗戶未關的退件標籤,各自進入不同的處理通道
錯誤代碼是分類標籤,抄下來對照一下就知道要找誰。

明明裝了憑證,為什麼還是被標不安全

有一種狀況特別讓人困惑:憑證明明是有效的、也沒有任何錯誤代碼,但網址列就是標著「不安全」。

這通常是混合內容

意思是:你的頁面本身是用 HTTPS 載入的,但頁面裡引用的某些東西還是走沒加密的 HTTP。整個頁面因此只有一部分是受保護的。

比喻一下:這像是你蓋了一間門窗都上鎖的房子,但其中一扇窗戶是開著的。房子整體再堅固,只要有一個開口,就不能說它是密閉的。

依照 MDN 的定義,混合內容分兩種,瀏覽器的處理方式差很多:

類型包含什麼瀏覽器怎麼處理為什麼
被動/顯示型`<img>`、`<audio>`、`<video>` 的來源、`<object>` 子資源多半仍然載入,但把頁面標成不安全它只能被偷看,改不了頁面行為
主動型`<script>`、CSS 的 `<link>`、`<iframe>`、XHR/fetch 請求、網頁字型、CSS 裡的 url()預設直接封鎖,內容不會載入它能改變頁面行為——注入惡意程式、轉址、竊取資料

所以症狀也不一樣:被動型混合內容的表現是「畫面正常,但標不安全」;主動型的表現通常是「版面壞掉或功能不動」,因為被擋掉的那個檔案根本沒載入。

怎麼找出兇手?

不用一個一個猜。在瀏覽器按 F12 打開開發人員工具,切到主控台(Console),被擋掉或被警告的混合內容都會列在那裡,連網址一起列出來。照著那份清單,把對應的資源改成 HTTPS 就好。

常見的來源是:早年寫死在文章裡的圖片網址、外部嵌入的舊版第三方服務、網站搬家前留下的絕對路徑。

有一件事要特別注意:Chrome 會幫你偷偷修掉一部分,但你不能依賴它。

從 Chrome 80 開始,瀏覽器對混合的音訊與影片會自動嘗試改用 HTTPS 重新載入,Chrome 81 起圖片也納入同樣的處理。也就是說,有些混合內容「自己好了」,不是因為有人修過,而是瀏覽器替你升級了

但這個機制有兩個限制,讓它不能當成解法:一是升級失敗的資源會直接被擋掉,畫面上那張圖就這樣不見了,而你不會收到任何通知;二是它只處理被動型那幾種,主動型的腳本與 iframe 照樣封鎖。

所以正確的做法還是回去把原始碼裡的網址改掉,不要因為「看起來好像正常了」就當作處理完畢。

一句話收尾有憑證不等於整頁都加密,混合內容是「有鎖但沒關窗」。

剖面房屋大門上鎖,樓上一扇窗半開讓圖片與音符飄入,樓下一扇窗被木板釘死把程式碼擋在外面且房間是空的
有憑證不等於整頁都加密,混合內容是「有鎖但沒關窗」。

只保 www 沒保裸網域,這個漏洞平常看不出來

這一個值得單獨講,因為它踩到的人多、但幾乎沒人事先知道。

一個網站通常有兩個入口:`www.example.com` 和 `example.com`(沒有 www 的那個叫裸網域)。它們在憑證的世界裡是兩個不同的名字,不會自動互相涵蓋

如果當初申請憑證時只填了 `www.example.com`,那麼有人直接輸入 `example.com` 進來時,就會看到 `ERR_CERT_COMMON_NAME_INVALID`。

為什麼平常沒人發現?因為:

  • 官網連結、名片、Google 搜尋結果通常都帶 www,走的是安全的那個入口。
  • 你自己測試的時候,瀏覽器會用歷史紀錄自動補完成帶 www 的版本。
  • 只有「手動輸入網址」的人會撞到,而那通常是客戶、是第一次來的人,也是最不可能回頭跟你說的人。

同樣的邏輯也適用在後來才加的子網域:活動頁 `event.example.com`、商城 `shop.example.com`,如果當初沒納入涵蓋範圍,上線那天就是裸的。

⚠️ 注意

自己驗收網站時,一定要手動把網址列清空、完整打一次不帶 www 的網域。不要用書籤、不要用歷史紀錄自動補完——那兩個都會幫你補上 www,剛好避開這個問題。

一句話收尾憑證保護的是「名字」不是「網站」,多一個名字就要多納入一個。

同一棟建築有兩扇門,左門有名牌與鎖訪客順利進入,右門名牌空白沒有鎖並掛著紅色警告三角形,訪客被擋在門外
憑證保護的是「名字」不是「網站」,多一個名字就要多納入一個。

下個月開始,沒有 HTTPS 的網站會被 Chrome 主動攔一道

前面講的都是「已經出問題了,怎麼查」。這一節反過來,講一件還沒發生、但下個月就會發生的事。

Chrome 有一個叫「一律使用安全連線」的設定,它會讓瀏覽器優先嘗試用 HTTPS 連線,遇到只有 HTTP 的網站時先跳一個警告頁問使用者要不要繼續。這個功能 2022 年就有了,但一直是使用者要自己去設定裡打開的選項,實際開的人很少。

從 Chrome 154(2026 年 10 月)開始,這個設定會對所有人預設開啟。

對已經有 HTTPS 的網站,這件事沒有影響,使用者不會察覺任何差別。真正受影響的是兩種站:

  • 整站還停在 HTTP 的網站——訪客第一次進來時會先看到一個警告頁。
  • 主站有 HTTPS、但某些舊頁面或子網域還是 HTTP 的網站——那幾頁會被單獨攔下來。

⚠️ 注意

這不是罰則,也不是排名懲罰,是瀏覽器的預設行為改變。 但實務上的效果很直接:第一次來的訪客在看到你的內容之前,會先看到一個問他「要不要繼續」的畫面。

如果你的網站還有任何一個入口是 HTTP——包括那些已經沒人維護、但還掛在網路上的舊活動頁——現在是處理它們的時候。

一句話收尾瀏覽器對 HTTP 的容忍度只會越來越低,這幾年的方向一路都是如此,沒有回頭的跡象。

這個到底該找誰修

技術問題講完了,講一個實務上更常卡住的:找誰。

台灣中小企業的網站,常常是網域在 A、主機在 B、網站是 C 做的。出事的時候三方互推很常見,因為每一方都碰得到這件事,但沒有一方的合約裡明確寫著它歸自己。

用前面的分流結果,責任其實分得出來:

  • 只有你看得到 → 自己或公司 IT。這時候找網站廠商是白找,他們改不了你電腦上的防毒設定。
  • 憑證過期、憑證鏈不完整 → 誰負責裝憑證就找誰,通常是主機商或網站廠商,看當初怎麼談的。
  • 網址不在涵蓋範圍 → 同上,要重新簽發一張涵蓋範圍正確的憑證。
  • 混合內容 → 網站內容的問題,找做網站的那一方,因為要改的是頁面裡的資源網址。

💡 小提醒

如果你現在手上有正在進行的網站專案,趁還沒結案,把「憑證由誰負責、到期時警報發給誰」寫進交付清單。這件事只要在專案結束前問一句就解決了,等到出事再來釐清,通常要耗掉好幾天。

如果你是網站方,這五件事自己先跑一次(不用技術背景,五分鐘做得完):

  1. 手動完整輸入不帶 www 的網域,清空網址列再打,不要用書籤或自動補完。
  2. 用手機的行動網路開一次,不要用公司 Wi-Fi。
  3. 跑一次第三方 SSL 檢測服務,看憑證鏈完不完整、到期日還剩幾天。
  4. 按 F12 看主控台,有沒有混合內容的警告。
  5. 把還在跑的舊活動頁、子網域列一遍,逐個開一次。

第 5 項最容易漏,因為那些頁面通常已經沒有人在看了——但它們仍然掛在你的網域底下,仍然代表你的品牌。

一句話收尾分流的結果同時也分好了責任,先知道是誰的問題,才知道該打電話給誰。

什麼情況可以略過警告,什麼情況絕對不行

最後講一個大家都會做、但很少人講清楚界線的事:那個「繼續前往(不安全)」的按鈕。

可以按的情況:你自己公司的內部系統、你自己架的測試環境、明確知道用的是自簽憑證的設備管理介面(例如印表機、NAS 的後台)。這些的共同點是:你本來就知道它為什麼沒有正式憑證

⚠️ 注意

絕對不要按的情況:任何要輸入帳號密碼、信用卡、個人資料的頁面;銀行、網路銀行、金流頁面;來路不明的連結;陌生的網站。

理由很直接:不安全警告的意思是「無法確認對方是不是你以為的那個人」。在這種狀態下輸入密碼,等於把資料交給一個身分不明的對象。這一條沒有例外,不管那個網站看起來多眼熟。

而如果是自己的網站被標不安全,正確的做法是修好它,不是教客戶怎麼略過警告。會照著做的客戶很少,不照做的那些會直接離開,而且不會告訴你原因。

講到這裡,整套排查其實可以收成一句話:先確認是誰的問題,再照錯誤代碼對症,中間不要急著清快取。

如果你手上的網站交接得不太清楚,不確定憑證、主機、網域各自在誰手上,或是正要規劃新網站想把這些交界處一次講明白,瞻新資訊的團隊可以協助盤點。

FAQ

網站顯示不安全,還能進去嗎?

技術上進得去,但要看情況。如果是你自己公司的內部系統或測試環境,而且你知道它為什麼沒有正式憑證,那可以按「繼續前往」;如果是要輸入帳號密碼、信用卡或個人資料的頁面,或是銀行、金流、陌生網站,一律不要按。不安全警告的意思是「無法確認對方是不是你以為的那個人」,在這種狀態下送出資料,等於交給身分不明的對象。

為什麼只有我看到不安全,同事開都正常?

這代表問題在你這台裝置或你連的網路,不在網站上。最常見的三個原因是:電腦系統時間跑掉、防毒軟體的 HTTPS 掃描功能在重新簽章你的連線、公司網路的安全檢查設備在做同樣的事。後兩者在受管的電腦上屬於正常設計而不是故障。確認方法是改用手機的行動網路開同一個網址,正常的話就能確定。

網站明明有 SSL 憑證,為什麼還是被標不安全?

最常見的原因是混合內容:頁面本身用 HTTPS 載入,但裡面引用的圖片、腳本或字型還是走 HTTP。整頁因此只有一部分受保護,瀏覽器就會把它標成不安全。另一個可能是憑證沒有涵蓋你正在用的那個網址,例如只保了帶 www 的版本,沒保裸網域。

混合內容要怎麼找出來是哪一個檔案造成的?

不用一個一個猜。在瀏覽器按 F12 打開開發人員工具、切到主控台(Console),被封鎖或被警告的混合內容會連網址一起列出來。照那份清單把對應資源改成 HTTPS 即可。常見來源是早年寫死在文章裡的圖片網址、外部嵌入的舊版第三方服務,以及網站搬家前留下的絕對路徑。

清除快取到底有沒有用?

有用,但它只解得掉其中一種成因——網站換過憑證之後瀏覽器沿用舊快取資料的情況。問題是很多人把它當成第一步,而它其實應該排在第五。先做分流(換裝置、換網路、開無痕)只要三十秒,卻能直接告訴你方向對不對;跳過分流直接清快取,運氣不好會白忙很久還找不到原因。

網站被標不安全,該找網站公司還是主機商?

看分流結果。只有你看得到就找自己或公司 IT,找網站廠商是白找;憑證過期或憑證鏈不完整,找當初負責裝憑證的那一方(主機商或網站廠商,視當初怎麼談);網址不在憑證涵蓋範圍要重新簽發,同上;混合內容則是頁面內容的問題,找做網站的那一方。台灣中小企業常見網域、主機、網站分屬三方,建議在專案結案前就把責任寫清楚。

Chrome 2026 年 10 月的改變會影響我的網站嗎?

如果你的網站已經全站使用 HTTPS,不會有任何影響,訪客不會察覺差別。從 Chrome 154(2026 年 10 月)起,「一律使用安全連線」會對所有使用者預設開啟,瀏覽器會優先嘗試 HTTPS,遇到只有 HTTP 的網站先跳警告頁。真正受影響的是整站還停在 HTTP 的網站,以及主站有 HTTPS 但某些舊頁面或子網域還是 HTTP 的情況——建議趁現在把那些沒人維護的舊活動頁也一起盤點處理掉。

參考資料

  • MDN Web Docs(Mozilla)—《混合內容》 https://developer.mozilla.org/zh-TW/docs/Web/Security/Mixed_content (繁體中文,國際)
  • W3C —《Mixed Content(Editor’s Draft)》 https://w3c.github.io/webappsec/specs/mixedcontent/ (英文,國際標準組織)
  • SSL Dragon —《How to Fix the NET::ERR_CERT_AUTHORITY_INVALID Error》 https://www.ssldragon.com/how-to/fix-ssl-errors/net-err-cert-authority-invalid/ (英文,歐美,屬憑證服務商的技術說明)
  • SSL Dragon —《How to Fix the NET::ERR_CERT_COMMON_NAME_INVALID Error》 https://www.ssldragon.com/how-to/fix-ssl-errors/net-err-cert-common-name-invalid/ (英文,歐美,屬憑證服務商的技術說明)
  • Chromium 專案 —《Mixed content Autoupgrade》技術文件 https://chromium.googlesource.com/chromium/src.git/+/master/docs/security/autoupgrade-mixed.md (英文,國際,瀏覽器官方文件)
  • Chromium 專案 —《Intent to Ship: HTTPS Upgrades》 https://groups.google.com/a/chromium.org/g/blink-dev/c/cAS525en8XE (英文,國際,瀏覽器官方公告)

ℹ️ 關於本文

本文引用的瀏覽器行為與混合內容處理規則,以查閱當日(2026年9月13日)的 MDN 與 W3C 公開文件版本為準。各家瀏覽器的安全性判定與錯誤訊息文字會隨版本調整,實際顯示請以你使用的瀏覽器版本為準。文中對排查順序與責任歸屬的判斷屬一般性實務經驗說明,實際情形會因網站架構、主機環境與合約範圍而有明顯差異,不構成對任何特定情況的保證或專業建議。

張安邦

關於作者|張安邦執行長

台灣大學醫學工程研究所背景,十年以上軟體開發經歷,領軍瞻新資訊有限公司(2010年成立),完成專案200+、涵蓋40~50+個產業。專長:網頁設計、APP開發、UI/UX設計、LINE Bot自動化、系統開發、資訊安全。