顯示具有 憑證 標籤的文章。 顯示所有文章
顯示具有 憑證 標籤的文章。 顯示所有文章

2024-05-29

[Certbot] ImportError: cannot import name 'appengine' from 'urllib3.contrib' ...

*Certbot 是一個由 Let's Encrypt 的組織維護的一個用來申請加密憑證的工具

之前公司網站的 https 憑證是透過 Certbot 的來輔助申請使用的,公司網站的系統是 Ubuntu 18.04 LTS ,在安裝好 Certbot 後,它會在 /etc/cron.d 中增加一個 certbot 的排程,定期是每天的「0 */12 * * *」會執行 renew 檢測操作

憑證一般申請後的有效期是三個月,但一般應該是可以提前幾天就讓你 renew 展延

而最近我會發現異常是因為在五月初收到來自 Let's Encrypt Expir 寄過來告知還有 xx 天就要過期了,要記得去 renew ,當時我就覺得怪怪的,因為公司這個憑證已經運行有幾年了,我還是第一次收到通知信,不過當時我還有別的事在忙,想說因為有排程會去自動 renew 也就沒有多想

直到前幾天我又收到同一封告知即將要過期的信,我才認真的去檢查

一開始先查看是不是 /etc/cron.d/certbot 是不是被刪或裡面的排程設定被動過了,但檢查後覺得是正常的,再來就是去檢查排程執行時所記錄的 syslog ,在查看「grep -i "certbot" /var/log/syslog」後發現,certbot 的排程執行時有異常,大至的訊息如下

systemd[1]: Starting Certbot
certbot[...]: Traceback (most recent call last):
certbot[...]:  File "/usr/lib/python3/dist-packages/requests_toolbelt/_compat.py"....
...
...
...
certbot[...]: ImportError: cannot import name 'appengine' from 'urllib3.contrib' ...
systemd[1]: certbot.service: Main process exited, code=exited, status=1/FAILURE
systemd[1]: certbot.service: Failed with result 'exit-code'.
systemd[1]: Failed to start Certbot

在 google 之後,大部份的建議都是將 python library 中的 urllib3 給移除就可以了,然後執行「sudo pip uninstall urllib3」,再輸入 y 確定要移除
*用 sudo 是因為 certbot 是以 root 身份執行的,所以 urllib3 的套件是安裝在 root 的 python library 之下

然後再手動讓 certbot 跑 renew 就沒有出現上述的異常訊息,而且憑證也更新了
*手動 renew 指定「sudo certbot -q renew」

2017-03-11

[續集]自行更換 Aruba Controller 憑證

前篇:https://cheaster.blogspot.tw/2016/09/aruba-controller.html

續集主要內容是,後來向中華電信申請了萬用憑證…那怎麼讓 aruba controller 使用…

一樣,也是很簡單…

進入 aruba controller 的後台,在 Configuration/Management/Certificates/Upload
上傳萬用憑證…不過這邊跟前筆一樣有地方要注意

hinet 發證中心在你確認之後會將憑證和publicCA、ROOTCA一起寄給你…如果你直接把憑證上傳後選定,你會發現瀏覽器或上網認證時還是出現安全性警告…

這是因為,你的憑證中沒有 private.key ,也沒有 PublicCA Certificate ,因為付費制的申請方式和 sslforfree 有一點不同,請求檔你要先給 isp 憑證管理中心,所以你的 private.key 應該會先由 iis 發出或 openssl 發出…所以,以下兩個假設

2017-03-07

[2019-07-27修正]將 IIS 產生的 pfx 匯出成私鑰和發行憑證兩個檔案出來

最近與中華電信申請了萬用網域的憑證

一開始的請求檔是利用 iis 所發出的要求…但因為是萬用網域,所以若要將憑證用於其他服務時,有的會要分成私鑰與發行憑證出來,發行憑證在申請完後就會給了,但私鑰怎麼從 iis 匯出來?


  1. 先讓 iis 匯出 pfx 檔案,可以參照中華電信的說明,不過 iis6 特別要注意的是在匯出時要勾選「匯出私密金鑰」
  2. 下載 windows 版的 openssl 
  3. 指令(都要輸入第一步驟時的密碼)
    1. 匯出 full 資訊:<path>\openssl.exe pkcs12 -in <pfx-file.pfx> -out full.txt -nodes
    2. 匯出私鑰:<path>\openssl.exe pkcs12 -in <pfx-file.pfx> -out key.txt -nodes -nocerts
    3. 匯出發行憑證:<path>\openssl.exe pkcs12 -in <pfx-file.pfx> -out cert.txt -nodes -nokeys
(2019-07-27 註:抱歉,看到留言的悠遊龍老師再看這篇才發現原來之前把私鑰和發行憑證的匯出指令寫反了,目前上面已修改…想想,-nokeys 指的就是不要私鑰,所以只剩發行憑證;-nocerts 就是不要發行憑證,那就剩私鑰了…真是抱歉,過了兩年才因為留言發現,感謝悠遊龍老師的提醒)

如果要合成為 pfx 咧?


<path>\openssl.exe pkcs12 -export -out new.pfx -inkey key.txt -in cert.txt -certfile <rootca.crt>

2016-09-23

自行更換 Aruba Controller 憑證

事發於剛開學的某日,早上上班剛進辦公室時就看到同事在為一位老師服務,我想說應該又是老師的電腦有問題要請求我們協助就沒多注意。

後來同事讓我過去處理…

老師的狀況是要進行學校的無線網路連線,因為學校由本單位建置的網路是用 aruba controller 3600 + aruba thin-AP 所建置的熱點無線…所使用的認證為學校的 radius over ldap 的認證,帳號是 mail over ldap 。

所以連上 ssid 之後,會先導引到登入頁面 (https),輸入郵件的帳號密碼,正確後才可進行網路使用。

但此老師若以 chrome 要被導引到登入頁面時,會出現 redirect loop 的狀況,或者出現在憑證頁有問題的提示頁面,chrome 所帶的 error code 為 err_cert_revoked ,告知憑證已被撤銷…

目前所使用的憑證是 aruba controller 的 self-sign …導引位址是 serverlogin.arubanetwork.com …對應的 ip 為 aruba controller 對外的 ip …憑證到期日為 2017 年的某日…所以不是因為「過期」的問題,重點應該是在「revoked」…

後來以 chrome 的憑證錯誤說明知道,原來 self-sign 的演算法是使用 SHA1 ,此法將於 2017 棄用,目前各大發行憑證中心與瀏覽器大多提早半年取消使用此演算法的憑證…

所以這個老師的狀況就是那麼剛好的遇上…(但奇怪的是,這個狀況只出現在一般電腦上的瀏覽器…手機上用的 chrome 沒有出現 err_cert_revoked 的警告)

2014-11-05

IIS 6 SSL 憑證

最近遇到 ssl 憑證過期的問題…

進入到 iis 管理工具,選擇網站後按右鍵選內容,在目錄安全設定那邊選伺服器憑證…選擇更新目前憑證, iis 它會再匯出 base 64的 certnew 的檔案。

再到 http:// localhost/certsrv/

提出進階的憑證要求,選擇 base64 的,把 certnew.txt 中的東西複製貼上到 base64 的文字方塊中,再送出。

然後到 certsrv 的伺服器上,找擱置中的要求選擇發行,再到發行中的憑證找到新提出的那一項,在上面連點左鍵兩下可以進行憑證內容,然後選擇匯出到檔案…匯出的格式要記得選擇「Base-64 Encoded X.509 (.CER)」…如果單純的匯出 cer 檔的話, iis 會不認得內容,所以要給 iis 看得懂的話,一定要特定再到 certsrv 伺服器上匯出成 X.509 的 cer 檔。

再把此檔拿到 iis 的主機中,再到 iis 管理工具 → 網站 → 內容 → 目錄安裝設定 → 伺服器憑證 → 安裝要求 → 選擇上面指定的檔案。

就 ok 了

參考:http://www.dotblogs.com.tw/topcat/archive/2008/03/04/1149.aspx

2009-05-19

Windows-遠端桌面連線使用SSL憑證加密

嗯,這問題讓我找了很久…上星期五好像在微軟的技術文件庫中找到…

但事隔四天的現在…我忘了實際的位置…現在是以印象來說明這個方式…

--------

以windows 2003 standard server開啟遠端桌面為例

第一步:先去申請憑證
1.連上所謂的憑證伺服器certsrv
2.選擇工作點「要求憑證」
選「進階憑證要求」
選「向這個CA建立並提交一個要求」
3.在識別資訊一區,名稱的地方填上hostname
「所需的憑證類型」選「伺服器驗證憑證」
「CSP」選「Microsoft RSA SChannel Cryptographic Provider」
「將金鑰標示成可匯出」打勾(註:「將金鑰匯出到檔案」不用勾)
「將憑證存放在本機電腦憑證存放區」打勾
4.點「提交」
(提交後就可以至憑證伺服器選擇發行,然後瀏覽器回到certsrv的根目錄頁)
5.回到certsrv的根目錄頁
點「檢視擱置中的憑證要求狀態」
點選相關的連接,請安裝憑證