使用openssl生成https證書

2020-12-17 linux運維菜

背景

http在公網傳輸的時候,都是明文的,因此考慮加個ssl證書。

創建ssl證書

1、創建密鑰

使用openssl工具生成一個RSA私鑰

openssl genrsa -des3 -out server.key 2048

注意:生成私鑰,需要提供一個至少4位,最多1023位的密碼。

2、生成CSR(證書籤名請求)

openssl req -new -key server.key -out server.csr

說明:需要依次輸入國家,地區,城市,組織,組織單位,Common Name和Email。其中Common Name,可以寫自己的名字或者域名,如果要支持https,Common Name應該與域名保持一致,否則會引起瀏覽器警告。

可以將證書發送給證書頒發機構(CA),CA驗證過請求者的身份之後,會出具籤名證書,需要花錢。另外,如果只是內部或者測試需求,也可以使用OpenSSL實現自籤名。

3、刪除密鑰中的密碼

openssl rsa -in server.key -out server.key

說明:如果不刪除密碼,在應用加載的時候會出現輸入密碼進行驗證的情況,不方便自動化部署。

4、生成自籤名證書

內部或者測試使用,只要忽略證書提醒就可以了。

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

5、生成pem格式的公鑰

有些服務,需要有pem格式的證書才能正常加載,可以用下面的命令:

openssl x509 -in server.crt -out server.pem -outform PEM

總結

自籤名的證書,不被瀏覽器信任,適合內部或者測試使用。生產環境老老實實去買證書吧。當然了,不限成本的請隨意。

相關焦點

  • HTTPS 證書生成原理和部署細節
    it)客戶端收到的東西原封不動,加上 premaster secret(通過 random-client、random-server 經過一定算法生成的東西),再一次送給伺服器端,這次傳過去的東西會使用公鑰加密伺服器端先使用私鑰解密,拿到 premaster secret,此時客戶端和伺服器端都擁有了三個要素:random-client、random-server 和
  • PHP的OpenSSL加密擴展學習(三):證書操作
    PHP的OpenSSL加密擴展學習(三):證書操作關於對稱和非對稱的加密操作,我們已經學習完兩篇文章的內容了,接下來,我們就繼續學習關於證書的生成。生成 CSR 證書籤名請求CSR 是用於生成證書的籤名請求,在 CSR 中,我們需要一些 dn 信息。
  • PHP的OpenSSL加密擴展學習(二):非對稱加密
    $config = array(    "private_key_bits" => 4096, // 指定應該使用多少位來生成私鑰);$res = openssl_pkey_new($config); // 根據配置信息生成私鑰openssl_pkey_export($res, $privateKey
  • 使用Certbot免費申請https證書
    如何使用HTTPS?使用HTTPS協議,需要有一張被信任的 CA ( Certificate Authority )證書,也就是證書授權中心頒發的 SSL 安全證書,並且將它部署到你的伺服器中間件(nginx、apache等)上。
  • 使用Let's Encrypt + Nginx生成免費HTTPS證書
    Let’s Encrypt簡介官網:https://letsencrypt.org/Let’s Encrypt作為一個公共且免費SSL的項目逐漸被廣大用戶傳播和使用,是由Mozilla、Cisco、Akamai、IdenTrust、EFF等組織人員發起,主要的目的也是為了推進網站從HTTP
  • phpopenssl_pkey_export生成私鑰為空解決辦法
    在使用openssl生成秘鑰時候發現公鑰生成正常而私鑰是null。首先openssl_pkey_export看他的函數介紹openssl_pkey_export (PHP 4 >= 4.2.0, PHP 5, PHP 7) Gets an exportable representation of a key function openssl_pkey_export
  • ASP.NET Core 3.1中HTTPS的配置
    其中HttpsRedirection中間件類提供強制執行從http到https重定向。啟動時會使用UseHttpsRedirection擴展方法來強制執行此操作。默認情況下,該擴展方法發出307臨時重定向響應。然後,使用配置的https埠指定重定向端點。如果沒有代碼中指定https埠,則該類將從HTTPS_PORT環境變量或IServerAddress功能獲取https埠。
  • OpenSSL 入門:密碼學基礎知識 | Linux 中國
    例如,即使正在使用的是 TLS(而非 SSL),OpenSSL 函數也經常在名稱中包含 SSL。此外,調用 OpenSSL 命令行實用程序以 openssl 開始。除了 man 頁面之外,OpenSSL 的文檔是零零散散的,鑑於 OpenSSL 工具包很大,這些頁面很難以查找使用。命令行和代碼示例可以將主要主題集中起來。
  • HTTPS 小結
    證書籤名請求CSR它是向CA機構申請數字證書時使用的請求文件,這裡的CSR不是證書,而向權威證書頒發機構獲得籤名證書的申請,當CA機構頒發的證書過期時,你可以使用相同的CSR來申請新的證書,此時key不變。
  • Android HTTPS防抓包策略與對抗方法總結
    0x02 了解HTTPS證書在HTTPS握手建立連結時,會使用非對稱算法協商通訊使用的加密密鑰,非對稱加密算法需要兩個密鑰: 公鑰和私鑰,通常我們所說的HTTPS證書就可以簡單理解成公鑰,為了確保客戶端接受到的證書的真實性,於是誕生了CA(Certification Authority)機構,CA機構發布的證書稱為CA證書,基於CA機構的權威性,用戶可以無條件的信任該機構發布的證書,為了鑑別
  • 非對稱加密與安全證書看這一篇就懂了
    權威的第三方中立機構( Certificate Authority, CA)收到 tlanyan.me 持有者的證書請求並核驗信息後,將持有者的名稱、公鑰與 CA 用私鑰生成的數字籤名等信息寫成證書頒發給申請者。
  • 數字證書那點事(附CP4D及VCenter7定製TLS證書部署案例參考)
    自籤名證書的 Issuer 和 Subject 是一樣的。下面就分別闡述如何使用 OpenSSL 生成這兩種自籤名證書。/.rand 1000# rand——生成隨機數   -out——指定輸出文件  1000——指定隨機數長度4.2 生成根證書私鑰利用openssl genrsa生成根證書私鑰(pem文件)[root@support CA]$openssl genrsa -out
  • 「自籤名證書」如何解決訪問藍鯨平臺時,提示網站不安全問題?
    有些同學可能會說我們可以給curl命令加上「-k」選項來忽略證書驗證問題,但這樣做只是一種掩耳盜鈴的方式,實際上是把https當http用了,那我們用https就沒意義了起不到防護中間人攻擊的目的。生成並替換藍鯨平臺自帶SSL證書生成自籤名證書生成自籤名證書最常用的工具是openssl,windows和linux平臺都可以使用這一工具,由於筆者使用的開發機器是linux系統的因此只給大家介紹在linux系統下的openssl
  • HTTPS連接的前幾毫秒發生了什麼?
    */最後一句的意思就是說使用https,是應對中間人攻擊的唯一方式。為什麼這麼說呢,這得從https連接的過程說起。05使用https的代價在wireshark裡面可以看到每個包的發送時間:所以使用https是需要付出代價:建立https需要花費時間(~0.3s)數據需要加密和解密,佔用更多的cpu數據加密後比原信息更大,佔用更多的帶寬06怎樣繞過https使用ssltrip,這個工具它的實現原理是先使用arp欺騙和用戶建立連接,然後強制將用戶訪問的https替換成http。
  • Android證書生成,籤名,驗證,雖然難,但學一次就夠了!
    之前,我們談論了生成證書,讓我們從安全角度來看它,在分析您從第三方網站下載的Android應用程式時,您可以反編譯該應用程式並查看該證書並將其與原始應用程式進行比較,在使用的哈希算法上,如果應用程式可能已被修改或篡改,則將其進行比較驗證。
  • 數字證書常見格式整理
    一種文件打包格式,為存儲和發布用戶和伺服器私鑰、公鑰和證書指定了一個可移植的格式,是一種二進位格式,通常以.pfx或.p12為文件後綴名。使用OpenSSL的pkcs12命令可以創建、解析和讀取這些文件。P12是把證書壓成一個文件,xxx.pfx 。主要是考慮分發證書,私鑰是要絕對保密的,不能隨便以文本方式散播。所以P7格式不適合分發。.pfx中可以加密碼保護,所以相對安全些。
  • 一文看懂SSL/TLS/OPENSSL/HTTPS
    在SSL協議中,我們使用了很多密碼學手段來保護數據,其中包括對稱密碼、公鑰密碼、數字籤名、證書、完整性校驗、偽隨機數生成等。由於這些算法和操作都非常複雜,於是開源社區就開發了一套庫,這個庫裡面提供了很多現成的標準方法,其他開發者只要用正確調用這些方法,就可以實現SSL協議中的各種加密/解密操作了。
  • OpenSSL 改變開發策略:轉用 GitHub issue 討論補丁
    其中包括關閉 openssl-dev 列表,選擇在 GitHub 上討論所有的補丁。此外,增加了一個新的面向全世界用戶的只讀郵件列表 openssl-project(https://mta.openssl.org/mailman/listinfo/openssl-project)。
  • 10分鐘生成一張永久免費的SSL證書
    為了安全起見,現在開發微信服務號和IOS客戶端等訪問伺服器端都要求使用https加密傳輸。SSL證書是數字證書的一種,類似於駕駛證、護照和營業執照的電子副本。因為配置在伺服器上,也稱為SSL伺服器證書。