HTTPS證書申請相關筆記


申請免費的HTTPS證書相關資料

參考資料:

HTTPS 檢測

蘋果ATS檢測

2017年1月1日起,蘋果強制所有 app 滿足 HTTPS,即 iOS9 推出的 App Transport Security (ATS) 特性。
輸入域名,檢查您的 iOS app 是否滿足 ATS 特性。

什么是ECC證書?

  • 生成、簽署 ECC 證書,Nginx 部署雙證書教程 – 米飯粑

    橢圓曲線密碼學(Elliptic curve cryptography,縮寫為ECC),一種建立公開密鑰加密的算法,基於橢圓曲線數學,其更適合於移動互聯網,有更好的安全性和更好的性能。ECC加密算法 1985年 提出,到 2005 年才在各種操作系統中獲得廣泛支持,2015 年開始被普遍性的部署。

    可用於 ECDHE 數字簽名的算法主要有 RSA 和 ECDSA 內置 ECDSA 公鑰的證書一般被稱之為 ECC 證書,內置 RSA 公鑰的證書就是 RSA 證書。

渠道2: Let's Encrypt

優點

  1. 開源免費
  2. 支持通配符域名證書
  3. HTTPS證書支持iOS企業版下載

缺點

  1. 證書有效期3個月

Let's Encrypt 的是否支持非80,443的其它端口來驗證?

答案是: NO,不支持! 因為安全問題!

此類問題解決方案就是使用DNS驗證.

參考資料:

申請工具4: acme.sh

優點

  1. 支持功能全
  2. 日志信息足夠詳細

缺點

  1. 安裝很麻煩

常用命令

# 使用測試服務器簽發證書(防止正式服務器簽發錯誤次數太多被封鎖)
# --staging
# export ACME_VERSION=2

#
通過 WebRoot 方式
acme.sh --issue -d bh.baixiangfood.com -w wwwroot --debug

#
第一次
export DP_Id="123456"
export DP_Key="asfadsfsdfasdfasdfasdfsdfasdfasdfasdf"
acme.sh --issue -d azyk.net -d '*.azyk.net' --dns dns_dp --debug
acme.sh --issue -d baixiangfood.azyk.net -d '*.baixiangfood.azyk.net' --dns dns_dp --debug

#
第一次之后
acme.sh --renew -d azyk.net --force --debug


#
導出相關證書到指定地方
acme.sh --install-cert -d azyk.net --key-file my.key --fullchain-file myfullchain.cer --debug

#
生成 .pfx 格式供 IIS 導入使用
# 因為 `fullchain.cer` = `ca.cer` + `*.azyk.net.cer`所以導入 IIS 里的時候選擇 `fullchain.cer` 才能一步到位,
# 否則會提示,證書不受信任,因為可能缺少 `ca.cer` 的原因.
#openssl pkcs12 -export -out azyk.net.pfx -inkey '*.azyk.net.key' -in '*.azyk.net.cer'
openssl pkcs12 -export -out my.pfx -inkey my.key -in myfullchain.cer

如何申請證書?

參考資料:

將子域名的驗證權限用別的DNS服務商處理?

參考資料:

  • Linux 下使用 acme.sh 和 NS 代管申請 Let's Encrypt 免費通配符證書 - 燒餅博客

    一種折衷的方法,將 ACME 認證域名單獨托管至支持 API 的 DNS 服務商。即使 API Key 泄露,攻擊者也無法篡改網站的其它 DNS 記錄。
    本例采用的方法是 NS 代管一個任意子域名,然后利用 CNAME 轉發 ACME 挑戰子域名。
    本例假設你擁有兩個域名 example.com  example.org,現在希望將 acme.example.com 轉交由 DigitalOcean 域名托管服務代管,並將兩個域名的 ACME 挑戰子域名轉發至這個子域名。

  • DNS alias mode · Neilpang/acme.sh Wiki · GitHub

    Do not remove the CNAME like : _acme-challenge.importantDomain.com after you issue the cert. It will be reused when acme.sh tries o renew the cert. The left cname record _acme-challenge.importantDomain.com doesn't harm to your domain at all. Just keep it there.

    We have another parameter: --domain-alias, it has the same meaning with --challenge-alias.
    But with --domain-alias you don't need to add _acme-challenge. prefix.

如何通過 443 端口申請證書?

如何與IIS配合以便能正確簽發證書?

方法2:

  1. 打開 IIS 的對應 80 端口的網站
  2. 右鍵添加虛擬目錄
  3. 別名設置為 .well-known
  4. 物理路徑設置為 Cygwin 的 /home/YOUR_USER_NAME/wwwroot/.well-known 路徑對應的 Windows下的路徑

    如:C:\Cygwin\home\YOUR_USER_NAME\wwwroot\.wel-known

  5. 然后通過命令acme.sh --issue -d x.com -w wwwroot申請證書即可

方法1:

  1. 通過 mklink /d 將 物理路徑設置為 Cygwin 的 /home/YOUR_USER_NAME/wwwroot/.well-known 路徑對應的 Windows下的路徑 鏈接 到 IIS 網站目錄下.

DNSPod 服務提供商 泛域名 [野卡] 申請記錄:

  • √申請成功: *.azyk.net

    acme.sh --issue -d '*.azyk.net' --dns dns_dp --debug --staging

  • √申請成功: *.sub1.azyk.net

    acme.sh --issue -d '*.sub1.azyk.net' --dns dns_dp --debug --staging

  • √申請成功: *.sub2.sub1.azyk.net

    acme.sh --issue -d '*.sub2.sub1.azyk.net' --dns dns_dp --debug --staging

    雖然證書能申請成功,但是在 域名解析控制台 卻無法正常添加解析記錄,提示:
    泛解析級數超出限制

  • ×申請失敗: *.sub3.sub2.sub1.azyk.net

    acme.sh --issue -d '*.sub3.sub2.sub1.azyk.net' --dns dns_dp --debug --staging

    提示錯誤信息:
    Error add txt for domain:_acme-challenge.sub3.sub2.sub1.azyk.net

    測試:
    1. 設置CNAME: _acme-challenge.sub2.sub1 => _acme-challenge.azyk.net
    2. 執行命令:acme.sh --issue -d '*.sub3.sub2.sub1.azyk.net' --challenge-alias azyk.net --dns dns_dp --debug --staging
    3. 返回錯誤: *.sub3.sub2.sub1.azyk.net:Verify error:No TXT record found at _acme-challenge.sub3.sub2.sub1.azyk.net

    解決方案: 更換DNS服務商
    理由: DNSPod 免費版本只支持2級通配符.

參考資料:

申請證書時出現SERVFAIL looking up CAA for Secondlevel.azyk.net錯誤

x.azyk.net:Verify error:DNS problem: SERVFAIL looking up CAA for Secondlevel.azyk.net

參考資料:

在Cygwin里安裝 acme.sh 步驟

  1. 准備好 Cygwin 環境
  2. 安裝好 curl, openssl and crontab

在Windows環境安裝Cygwin工具包的步驟

已有.cer和.key文件如何供IIS導入證書?

#openssl pkcs12 -export -out azyk.net.pfx -inkey '*.azyk.net.key' -in '*.azyk.net.cer'
#因為 `fullchain.cer` = `ca.cer` + `*.azyk.net.cer`所以導入 IIS 里的時候選擇 `fullchain.cer` 才能一步到位,
#否則會提示,證書不受信任,因為可能缺少 `ca.cer` 的原因.
openssl pkcs12 -export -out azyk.net.pfx -inkey '*.azyk.net.key' -in 'fullchain.cer'

參考資料:

  • 如何在 IIS7 上安裝 SSL 證書?

    1、在你的服務器上,解壓下載的證書 zip 文件,並重命名保存為 your_domain_name.cer。
    2、 打開 IIS 管理器,開始菜單(Start)-> 管理工具(Administrative Tools)-> IIS 管理器(Internet Information Services (IIS) Manager)
    3、你可以看到連接(Connections)下的主機,點擊你服務器的主機名。
    4、在中間菜單中,IIS 部分,雙擊 服務器證書(Server Certificates)。
    5、在操作菜單,點擊 完成證書請求(Complete Request Certificate) 向導。
    6、在完成證書請求向導,指定證書認證響應(Specify Certificate Authority Response)頁,選擇剛剛解壓的文件。
    7、填寫一個名稱,用於辨別該證書是哪張證書。
    8、證書安裝到這里就完成了。

  • How to Make a .pfx File When Given .crt and .key Files | SherWeb

    openssl pkcs12 -export -out domain.name.pfx -inkey domain.name.key -in domain.name.crt

  • Using Let's Encrypt with IIS on Windows - Rick Strahl's Web Log

    This script produces a PFX file which can then be imported into IIS.
    There are also tools to install and update existing certificates into IIS but it looks there are currently some changes in the API that made this not work for me. I wasn't able to even get the tools to load.
    You can manually install the certificate with:
    certutil -importPFX "c:\admin\certs\codepaste2016-02-28--20:22" –p password

  • iis - IIS7: How to import public key and private key as two seperate files? - Server Fault

簽發證書成功后產生的文件及其各自用途

例子:通配符域名生成成功后產生了以下文件:

    './.acme.sh/*.azyk.net':
'*.azyk.net.cer'
'*.azyk.net.conf'
'*.azyk.net.csr'
'*.azyk.net.csr.conf'
'*.azyk.net.key'
ca.cer
fullchain.cer

各種后綴的文件意義和用途相關參考資料:

得此靈感通過Beyond Compare工具對比 之后發現的確是 fullchain.cer = ca.cer + *.azyk.net.cer 所以導入 IIS 里的時候選擇 fullchain.cer 才能一步到位,否則會提示,證書不受信任,因為可能缺少 ca.cer 的原因.

  • how to update acme.sh · Issue #187 · Neilpang/acme.sh

    我放在nginx配置文件里面的只有fullchain.cer和domain.com.key
    那么其他文件是什么作用?
    其他的文件沒有作用, 為的是別的服務器,不光是nginx。 你需要什么就指定什么,別的不管。

  • 獲取免費的 Let’s Encrypt 泛域名 SSL 證書 - VirCloud's Blog - Learning&Sharing

    [Sat Mar 17 16:10:54 CST 2018] The intermediate CA cert is in /root/.acme.sh/owen.ml/ca.cer
    [Sat Mar 17 16:10:54 CST 2018] And the full chain certs is there: /root/.acme.sh/owen.ml/fullchain.cer

  • Let's Encrypt 給網站加 HTTPS 完全指南

    cert.pem #server cert only
    privkey.pem #private key
    chain.pem #intermediates
    fullchain.pem #server cert + intermediates

  • [Solved] Why isn't my certificate trusted? - Server - Let's Encrypt Community Support

    The difference is, the ‘chain.pem’ file contains a cross signature from an IdenTrust root which is present in most browsers today.
    The ‘fullchain.pem’ references the ISRG root certificate, which is not yet present in most browsers as Let’s Encrypt are still in the process of applying to have it included.

    Currently both files should be based on the same chain provided by the Let’s Encrypt CA,

    So when I downloaded ‘fullchain.pem’ via FTP and renamed it to ‘fullchain.crt’ to check it, I ended up with an error “this certificate cannot be verified up to a trusted certification authority”. But downloading ‘chain.pem’ and renaming it ‘chain.crt’ showed me the cross signed intermediate.

  • 說明 · Neilpang/acme.sh Wiki

    注意, 默認生成的證書都放在安裝目錄下: ~/.acme.sh/, 請不要直接使用此目錄下的文件
    正確的使用方法是使用 --installcert 命令,並指定目標位置, 然后證書文件會被copy到相應的位置, Nginx 的配置 ssl_certificate 使用 /etc/nginx/ssl/fullchain.cer ,而非 /etc/nginx/ssl/ .cer ,否則 SSL Labs 的測試會報 Chain issues Incomplete 錯誤

  • SSL中,公鑰、私鑰、證書的后綴名都是些啥? - 劉長元的回答 - 知乎

    CA,certificate authority。證書局,用於制作、認證證書的第三方機構,我們假設營業執照非常難制作,就像身份證一樣,需要有制證公司來提供,並且提供技術幫助工商局驗證執照的真偽。

  • 那些證書相關的玩意兒(SSL,X.509,PEM,DER,CRT,CER,KEY,CSR,P12等) - guogangj - 博客園

    CRT - CRT應該是certificate的三個字母,其實還是證書的意思,常見於NIX系統,
    CER - 還是certificate,還是證書,常見於Windows系統,
    KEY - 通常用來存放一個公鑰或者私鑰,
    CSR - Certificate Signing Request,即證書簽名請求,這個並不是證書,而是向權威證書頒發機構獲得簽名證書的申請,其核心內容是一個公鑰
    PFX/P12 - predecessor of PKCS#12,對
    nix服務器來說,一般CRT和KEY是分開存放在不同文件中的,但Windows的IIS則將它們存在一個PFX文件中,(因此這個文件包含了證書及私鑰)這樣會不會不安全?應該不會,PFX通常會有一個"提取密碼",你想把里面的東西讀取出來的話,它就要求你提供提取密碼

  • What is the difference between a .CRT and a .CER file?

    The file extensions .CRT and .CER are interchangeable.

申請工具3: 瀏覽器在線申請 SSL For Free Online

  1. Get HTTPS for free!
  2. SSL For Free - Free SSL Certificates in Minutes
  3. FreeSSL.org - 一個申請免費HTTPS證書的網站
  4. 域名型(DV)免費SSL證書 - SSL 證書 - 文檔首頁 - 騰訊雲文檔平台 - 騰訊雲

優點

  1. 在線即可用,不需要安裝任何軟件

缺點

  1. 國內某些域名無法正常訪問導致無法簽發證書
  2. 需要全手動配置
  3. 無法自動續簽

申請工具2: Certify SSL Manager

manage free https certificates for IIS
The app is free for up to 5 managed sites per server

官方地址:Certify Your Windows IIS Website - simple free certificates powered by Let's Encrypt
下載地址:Certify Your Windows IIS Website - simple free certificates powered by Let's Encrypt

優點

  1. 有UI運行界面
  2. 大部分情況一路點擊即可完成,需要手動設置的很少
  3. 支持自動配置 IIS 的 MIME 類型
  4. 支持在請求證書前自我檢查配置是否正常
  5. 自動續簽證書實踐時有效.

缺點

  1. 許多選項不太明白啥功能
  2. 證書申請失敗時錯誤信息不夠詳細(無法輔助排查某些特殊情況下無法正常簽發證書的問題原因)

使用步驟簡述

  1. 下載最新版本
  2. 安裝並運行
  3. TODO

如何自動續簽證書?

程序本身有這個功能。 原理是:通過安裝成系統服務的形式. 但是實際操作過程中,能夠成功生效並續簽.

申請工具1: Windows ACME Simple (WACS)

A simple ACME client for Windows - for use with Let's Encrypt. (Formerly known as letsencrypt-win-simple (LEWS))

官方地址:PKISharp/win-acme: win-acme - A Simple ACME Client for Windows (for use with Let's Encrypt)
下載地址:Releases · PKISharp/win-acme

優點

  1. 手動操作比較多,相對比較靈活?

缺點

  1. 命令行運行界面
  2. 需要手動輸入域名,網站地址
  3. 需要手動配置 IIS 的 MIME 類型
  4. 自動續簽證書實踐不成功.
  5. 證書申請失敗時錯誤信息不夠詳細(無法輔助排查某些特殊情況下無法正常簽發證書的問題原因)

使用步驟簡述

  1. 下載最新版本
  2. 解壓后運行letsencrypt.exe
  3. 輸入M開始手動申請
  4. TODO

如何自動續簽證書?

程序本身有這個功能。 原理是:通過創建一個系統任務計划任務來運行. 但是實際操作過程中,一直未成功生效過.囧

渠道1: StartSSL

優點

  1. 證書有效期1年
  2. 老牌子

缺點

  1. HTTPS證書不支持iOS企業版下載
  2. 被國內公司玩壞了?

申請新域名證書的步驟

參考資料:

二次登錄網站的步驟

  1. 雙擊"StartSSL登錄證書.pfx" 導入 密碼:xxx
  2. 登錄網站:https://www.startssl.com/ - 點擊“Authenticate”

如何續簽登錄證書?

續簽時,使用原來的帳號重新注冊,即可。


附件列表

     


    免責聲明!

    本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



     
    粵ICP備18138465號   © 2018-2025 CODEPRJ.COM