最多見的OpenSSL命令

https://www.sslshopper.com/ar...html

最通用的SSL工具之一是OpenSSL,它是SSL協議的開源實現。幾乎每一個平臺都有OpenSSL版本,包括Windows,Linux和Mac OS X.OpenSSL一般用於爲許多不一樣平臺(包括Apache)建立CSR和私鑰。可是,它還有數百種不一樣的功能,容許您查看CSR或證書的詳細信息,比較證書的MD5哈希和私鑰(以確保它們匹配),驗證證書是否在任何網站上正確安裝,並將證書轉換爲其餘格式。能夠在此處找到OpenSSL for Windows的編譯版本。node

若是您不想打擾OpenSSL,可使用咱們的SSL證書工具執行許多相同的操做。下面,咱們列出了最多見的OpenSSL命令及其用法:nginx

常規OpenSSL命令

這些命令容許您生成CSR,證書,私鑰以及執行其餘其餘任務。web

Base64編解碼

編碼:瀏覽器

echo "我是一片雲 天空是我家\n朝迎旭日升 暮送夕陽下" | openssl enc -base64

輸出:安全

5oiR5piv5LiA54mH5LqRIOWkqeepuuaYr+aIkeWutlxu5pyd6L+O5pet5pel5Y2H

44CA5pqu6YCB5aSV6Ziz5LiLCg==服務器

對上面的字符串解碼app

echo '5oiR5piv5LiA54mH5LqRIOWkqeepuuaYr+aIkeWutlxu5pyd6L+O5pet5pel5Y2H

44CA5pqu6YCB5aSV6Ziz5LiLCg==' |openssl enc -base64 -d
輸出:dom

我是一片雲 天空是我家\n朝迎旭日升 暮送夕陽下
注意:這裏編碼和解碼都是用的 enc 命令,只是解碼加了 -d參數。

md5摘要

造成摘要:webapp

echo "我是一片雲 天空是我家 朝迎旭日升 暮送夕陽下" | openssl md5

輸出

(stdin)= 2418617a0586d93db1db5e43260a43bb

校驗摘要:
再生成一次,對比生成的字符串。

生成服務器端 web 服務器密碼

用於基本驗證訪問的服務器密碼, 密碼只能是8位, 多了會有警告。

openssl passwd -crypt yourpass

會生成

U0tfb.p0Pit5I

重複執行上面的指令時密碼會有變化。因此密碼是有隨機變量在裏面。

保存到 ·/etc/nginx/conf.d/pass`文件中

$ cat /etc/nginx/conf.d/pass
youradmin:U0tfb.p0Pit5I

密碼文件是 用戶名:加密密碼 的格式存儲的。

Nginx服務器的配置

server {
        server_name  yourserver.cn;

        root /var/www/webapps/;

        index index.html index.htm;

        location / {
                auth_basic "server login auth";
                auth_basic_user_file conf.d/pass;
...

這樣就能經過基本驗證, 保護服務器的內容只能在輸入密碼的狀況下進行訪問。

生成新的私鑰和證書籤名請求

證書請求:

openssl req -out CSR.csr -new -newkey rsa:2048 -nodes -keyout privateKey.key

隨後能夠把證書請求發給頒發機構來完成證書的生成(準備好錢喲)。

若是僅是測試用,能夠生成自簽名證書(不花錢,但要手動導入瀏覽器)

能夠經過如下命令執行此操做:

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365

若是您不想使用密碼來保護私鑰,也能夠添加-nodes(的縮寫no DES)。不然,它將提示您輸入「至少4個字符」的密碼。

days您能夠將參數(365天)替換爲任何數字以修改到期日期。而後,它將提示您輸入「國家名稱」之類的內容,可是您只需點擊Enter並接受默認值便可。

添加-subj '/CN=localhost'以消除關於證書內容的問題(替換localhost爲所需的域)。

對於在自動化中使用此工具的其餘人,這裏是該主題的全部經常使用參數:-subj "/C=US/ST=Oregon/L=Portland/O=Company Name/OU=Org/CN=www.example.com"

除非您之前將自簽名證書導入瀏覽器,不然它們不會與任何第三方進行驗證。若是須要更高的安全性,則應使用由證書頒發機構(CA)簽名的證書

若是沒錢(好比我),能夠用 let's encrypt 。只要您的Web服務器能夠經過Internet上的端口80上的FQDN對其進行訪問,您就可使用LetsEncrypt並得到免費的完整CA證書(有效期爲90天,能夠自動更新),該證書不會給出任何瀏覽器警告/消息。不過這已經和OpenSSL沒啥關係了。

爲現有私鑰生成證書籤名請求(CSR)

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

根據現有證書生成證書籤名請求

openssl x509 -x509toreq -in certificate.crt -out CSR.csr -signkey privateKey.key

從私鑰中刪除密碼

openssl rsa -in privateKey.pem -out newPrivateKey.pem

使用OpenSSL檢查

若是須要檢查證書,CSR或私鑰中的信息,請使用這些命令。您還可使用咱們的在線工具檢查CSR並檢查證書。

檢查證書籤名請求(CSR)

openssl req -text -noout -verify -in CSR.csr

檢查私鑰

openssl rsa -in privateKey.key -check

檢查證書

openssl x509 -in certificate.crt -text -noout

檢查PKCS#12文件(.pfx或.p12)

openssl pkcs12 -info -in keyStore.p12

使用OpenSSL進行調試

若是您收到的錯誤是私有證書與證書不匹配,或者您安裝到站點的證書不受信任,請嘗試如下命令之一。若是您要驗證是否正確安裝了SSL證書,請務必查看 SSL。

檢查公鑰的MD5哈希,以確保它與CSR或私鑰中的內容匹配

openssl x509 -noout -modulus -in certificate.crt | openssl md5 
openssl rsa -noout -modulus -in privateKey.key | openssl md5 
openssl req -noout -modulus -in CSR.csr | openssl md5

檢查SSL鏈接。應顯示全部證書(包括中間體)

openssl s_client -host bixuebihui.com -port 443

使用OpenSSL進行轉換

這些命令容許您將證書和密鑰轉換爲不一樣的格式,以使它們與特定類型的服務器或軟件兼容。例如,您能夠將能夠與Apache一塊兒使用的普通PEM文件轉換爲PFX(PKCS#12)文件,並將其與Tomcat或IIS一塊兒使用。使用咱們的SSL轉換器轉換證書而不會弄亂OpenSSL。

將DER文件(.crt .cer .der)轉換爲PEM

openssl x509 -inform der -in certificate.cer -out certificate.pem

將PEM文件轉換爲DER

openssl x509 -outform der -in certificate.pem -out certificate.der

將包含私鑰和證書的PKCS#12文件(.pfx .p12 )轉換爲PEM

openssl pkcs12 -in keyStore.pfx -out keyStore.pem -nodes

您能夠添加-nocerts以僅輸出私鑰或添加-nokeys以僅輸出證書。

將PEM證書文件和私鑰轉換爲PKCS#12(.pfx .p12)

openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt

若是您還知道有啥有趣的用法,歡迎評論補充。

相關文章
相關標籤/搜索