導航:首頁 > 證書轉讓 > linuxopenssl證書

linuxopenssl證書

發布時間:2021-12-26 13:59:59

A. Linux-SSL和SSH和OpenSSH,OpenSSL有什麼區別

ssl是通訊鏈路的附加層。可以包含很多協議。https, ftps, .....
ssh只是加密的shell,最初是用來替代telnet的。通過port forward,也可以讓其他協議通過ssh的隧道而起到加密的效果。
SSL是一種國際標準的加密及身份認證通信協議,您用的瀏覽器就支持此協議。SSL(Secure Sockets Layer)最初是由美國Netscape公司研究出來的,後來成為了Internet網上安全通訊與交易的標准。SSL協議使用通訊雙方的客戶證書以及CA根證書,允許客戶/伺服器應用以一種不能被偷聽的方式通訊,在通訊雙方間建立起了一條安全的、可信任的通訊通道。它具備以下基本特徵:信息保密性、信息完整性、相互鑒定。 主要用於提高應用程序之間數據的安全系數。SSL協議的整個概念可以被總結為:一個保證任何安裝了安全套接字的客戶和伺服器間事務安全的協議,它涉及所有TC/IP應用程序。

SSH的英文全稱是Secure SHell。通過使用SSH,你可以把所有傳輸的數據進行加密,這樣「中間人」這種攻擊方式就不可能實現了,而且也能夠防止DNS和IP欺騙。還有一個額外的好處就是傳輸的數據是經過壓縮的,所以可以加快傳輸的速度。SSH有很多功能,它既可以代替telnet,又可以為ftp、pop、甚至ppp提供一個安全的「通道」。SSH是由客戶端和服務端的軟體組成的,有兩個不兼容的版本分別是:1.x和2.x。用SSH 2.x的客戶程序是不能連接到SSH 1.x的服務程序上去的。OpenSSH 2.x同時支持SSH 1.x和2.x。SSH的安全驗證是如何工作的從客戶端來看,SSH提供兩種級別的安全驗證。第一種級別(基於口令的安全驗證)只要你知道自己帳號和口令,就可以登錄到遠程主機。所有傳輸的數據都會被加密,但是不能保證你正在連接的伺服器就是你想連接的伺服器。可能會有別的伺服器在冒充真正的伺服器,也就是受到「中間人」這種方式的攻擊。第二種級別(基於密匙的安全驗證)需要依靠密匙,也就是你必須為自己創建一對密匙,並把公用密匙放在需要訪問的伺服器上。如果你要連接到SSH伺服器上,客戶端軟體就會向伺服器發出請求,請求用你的密匙進行安全驗證。伺服器收到請求之後,先在你在該伺服器的家目錄下尋找你的公用密匙,然後把它和你發送過來的公用密匙進行比較。如果兩個密匙一致,伺服器就用公用密匙加密「質詢」(challenge)並把它發送給客戶端軟體。客戶端軟體收到「質詢」之後就可以用你的私人密匙解密再把它發送給伺服器。用這種方式,你必須知道自己密匙的口令。但是,與第一種級別相比,第二種級別不需要在網路上傳送口令。第二種級別不僅加密所有傳送的數據,而且「中間人」這種攻擊方式也是不可能的(因為他沒有你的私人密匙)。但是整個登錄的過程可能需要10秒。
OpenSSL------一個C語言函數庫,是對SSL協議的實現。
OpenSSH-----是對SSH協議的實現。
ssh 利用 openssl 提供的庫。openssl 中也有個叫做 openssl 的工具,是 openssl 中的庫的命令行介面。
從編譯依賴上看:
openssh依賴於openssl,沒有openssl的話openssh就編譯不過去,也運行不了。
HTTPS可以使用TLS或者SSL協議,而openssl是TLS、SSL協議的開源實現,提供開發庫和命令行程序。openssl很優秀,所以很多涉及到數據加密、傳輸加密的地方都會使用openssl的庫來做。
可以理解成所有的HTTPS都使用了openssl。以root身份執行命令:grep -l 'libssl.*deleted' /proc/*/maps | tr -cd 0-9\\n | xargs -r ps u,可以看到哪些進程載入了老版本的openssl庫。

B. 如何在linux下安裝ssl證書

Apache安裝景安SSL證書需要三個配置文件

1
1_root_bundle.crt、2_domainname.com.crt、3_ domainname.com.key。
註:這三個文件在文件夾for Apache.zip中,其中domainname.com是您的域名,_ domainname.com.crt為公鑰,3_domainname.com.key為私鑰。(文件後綴名crt和cer的性質是一樣的)
END
安裝證書

下載並解壓openssl。(1)確認文件的存放目錄,例當前目錄為:/usr/local。

解壓openssl。如:tar zxvf openssl-0.9.8k.tar.gz

配置openssl。(1)進入openssl目錄。如:cd openssl-0.9.8k。

2)配置openssl。如:./config shared zlib make make test make install mv /usr/bin/openssl /usr/bin/openssl.save mv /usr/include/openssl /usr/include/openssl.save mv /usr/lib/libssl.so /libssl.so.save ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl ln -s /usr/local/ssl/include/openssl /usr/include/openssl ln -sv /usr/local/ssl/lib/libssl.so.0.9.8 /usr/lib/libssl.so

安裝apache1.解壓文件:tar zxvf httpd-2.2.26.tar.gz2.進入目錄:cd httpd-2.2.263.配置安裝(/usr/local/ssl是openssl的安裝路徑):./configure --prefix=/usr/local/apache --enable-so --enable-ssl --with-ssl=/usr/local/ssl --enable-mods-shared=all
4.安裝:make && make install5.修改apache下的httpd.conf文件。(1)打開apache安裝目錄下conf目錄中的httpd.conf文件,找到 #LoadMole ssl_mole moles/mod_ssl.so #Include conf/extra/httpd-ssl.conf (2)刪除行首的配置語句注釋符號「#」,保存退出。6.修改apache下httpd-ssl文件。

如果本地測試,請做本地解析訪問:打開 系統盤:\Windows\System32\Drivers\etc\hosts文件,用文本編輯器修改,把證書綁定的域名解析到本地ip。

訪問https://+證書綁定的域名,測試效果如下:

C. linux下使用openssl檢測PE文件數字簽名的證書是否有效

第一個坑: 有效期
windows在判斷證書是否有效時不檢測證書的有效期, 即使該證書超過有效期好幾年了, 只要沒有被吊銷, 微軟仍然認為它是有效的. 但在 openssl 提供的 X509_verify_cert 函數會驗證證書的有效期, 因此需要注釋掉驗證有效期的那部分代碼並重新編譯 openssl...
OK, 從 openssl 官網 上下載最新的版本, 好吧, 現在還是剛剛修復 Heartbleed 漏洞的 1.0.1g 版本...
下載, 解壓, 看下 INSTALL 文檔, 先試試可以編譯不:
./config
make

運氣不錯, 不用安裝什麼依賴直接編譯成功. 將代碼根目錄產生的 libcrypto.a 添加到項目中測試下, OK, 可以使用, 下面開始折騰了~
在 crypto/x509/x509_vfy.c 的 153 行找到 X509_verify_cert 函數(在線查看), 局部變數 ok 緩存每一步驗證是否通過, 它依次調用了:
check_issued
check_chain_extensions
check_name_constraints
check_trust
check_revocation
internal_verify
check_policy

其中 internal_verify (在線查看)驗證了證書的有效期, 進入這個函數, 在 1654 行找到這個代碼:
ok = check_cert_time(ctx, xs);
if (!ok)
goto end;

看看 check_cert_time 函數, 確認是檢查 notBefore 和 notAfter, 因此將上面三行代碼注釋掉, 驗證證書時就不會檢測有效期了.
然後就是重新編譯 openssl, 將 libcrypto.a 集成到項目里了~
第二個坑: unhandled critical extension
搜索了下, 在 openssl 官網上找到這個:
-ignore_critical
Normally if an unhandled critical extension is present which is not supported by OpenSSL the certificate is rejected (as required by RFC5280). If this option is set critical extensions are ignored.

原來是當openssl遇到證書中有它不支持的 未處理的關鍵擴展(unhandled critical extension ?) 時, 它會拒絕載入該證書.
再搜索下 -ignore_critical, 在 verify.c 中找到如下代碼片段:
else if (strcmp(*argv,"-ignore_critical") == 0)
vflags |= X509_V_FLAG_IGNORE_CRITICAL;

然後再使用 X509_STORE_set_flags 函數設置標志位:
X509_STORE *ctx;
...
X509_STORE_set_flags(ctx, vflags);

即可.
第三個坑: certificate signature failure
這個坑填不上了, openssl 說:
7 X509_V_ERR_CERT_SIGNATURE_FAILURE: certificate signature failure
the signature of the certificate is invalid.

在windows下導出證書文件, 直接用 openssl 驗證, 在載入證書就會出錯, PEM_read_bio_X509 返回為空....
第四個坑: A certificate was explicitly revoked by its issuer.
A certificate was explicitly revoked by its issuer. 是 Sysinternals 提供的工具sigcheck.exe 的檢測結果, 把文件拎出來一看, 證書真的被撤銷了...
OK, 只好根據證書上的 CRL Distribution Point(CRL 分發點) 提供的 URL 下載 撤銷證書列表 文件, 然後在調用 X509_verify_cert 驗證證書鏈之前, 設置填充被撤銷的證書列表:
X509_CRL *d2i_X509_CRL_fp(FILE *fp, X509_CRL **crl); // 讀取被撤銷的證書列表

STACK_OF(X509_CRL) *sk_X509_CRL_new_null();
#define sk_X509_CRL_push(st, val) SKM_sk_push(X509_CRL, (st), (val)); // sk_X509_CRL_push(STACK_OF(X509_CRL) *crls, X509_CRL *crl);

void X509_STORE_CTX_set0_crls(X509_STORE_CTX *c, STACK_OF(X509_CRL) *sk); // 設置被撤銷的證書列表

同時, 也要設置檢查被撤銷證書列表的標志位 X509_V_FLAG_CRL_CHECK, 然後再調用X509_verify_cert 驗證證書鏈即可.
填了第四個坑後又引起了第五個坑(如何獲取撤銷證書列表)和第六個坑(設置檢測撤銷證書列表的標識位後, 如果該證書沒有撤銷證書列表則直接報錯)...
第五個坑: 獲取撤銷證書列表文件
證書上的 CRL Distribution Point(CRL 分發點) 屬於擴展屬性, 在 PKCS #7: Cryptographic Message Syntax V1.5 上沒有相關介紹.
在 StackOverflow 上找到這個問答 Openssl - How to check if a certificate is revoked or not, 其中第二個回答說 CRL 是在 RFC 5280 中定義的, 除了證書中附帶被撤銷的證書列表以外還有使用 OCSP 協議的, 即使證書撤銷列表也分為使用 URL分發點和 LDAP DNs(???)提供的, 目前先考慮使用 URL 作為 CRL分發點 的情況吧.
然而 openssl 沒有提供直接獲取 CRL 分發點 URL 的API, 那個回答說 Apache 的 mod_ssl 模塊有本地 CRL 和 OCSP 檢測的實現代碼, 但沒有說明哪裡有檢測使用 URL 作為 CRL分發點 的實現方法.
然後又在 frank4dd.com上找到這個代碼 certextensions.c, 他給出了一個如何使用 openssl 從 X.509v3 版本的證書文件中提取擴展內容的示常式序, 太感謝 Frank4DD 這位仁兄了~~~
到這里後, 可以直接使用他的示常式序, 根據關鍵字 Full Name 和 URI 定位 CRL 分發點 的 URL, 也可以看看 openssl 是如何提取這個 URL 的, 然後自己實現一個介面.
如果自作孽使用第二種方法的話, 就編譯個 debug 版的 openssl 庫, 然後調試跟進X509V3_EXT_print 函數, 一步一步的向下走, 直到走到 GENERAL_NAME_print 函數, 這里就是終點了...然後就知道了 CRL 分發點 的 URL 的編號為 6, 也就是 GEN_URI, 直接取結果吧.
第六個坑: CRL有效期
在windows環境下每次查看PE文件的數字簽名時, windows 都會從 CRL分發點 下載吊銷證書列表做驗證,一般來說, 每個 CRL的有效期是非常短的,大概只有5~20 天的有效期吧, 然而我們不可能像 windows 一樣每次查看數字簽名時就從CRL分發點下載最新的吊銷列表.
另外, windows 遇到過期的 CRL 時不會產生證書鏈無效的結果, 但 openssl 在遇到過期的 CRL 時就會導致證書鏈驗證失敗, 因此在載入和驗證 CRL 時, 要忽略 CRL 的有效期.
分析 openssl 源代碼, X509_verify_cert 調用 check_revocation , 之後調用 check_cert , 然後再調用 check_crl , 在這個函數里有檢測 CRL 有效期的代碼:
if (!(ctx->current_crl_score & CRL_SCORE_TIME))
{
ok = check_crl_time(ctx, crl, 1);
if (!ok)
goto err;
}

將其注釋掉即可忽略檢測 CRL 有效期.
第七個坑: CRL 列表為空導致 openssl 認為沒有載入 CRL

9 初始化順序
10 證書名: key_id

D. linux 怎麼用openssl把.key文件變成.pem

1、To convert a private key from PEM|DER to DER|PEM format:
openssl rsa -inform PEM|DER -outform DER|PEM -in pem-file|der-file -out der-file|pem-file
2、例如:
openssl rsa -in key.pem -outform DER -out keyout.der
openssl rsa -in serverb.key -outform PEM -out serverb.pem
3、字元串生成md5哈希值
echo -n String | openssl md5
4、驗證伺服器
openssl s_client -connect ip:443
5、To remove the pass phrase on an RSA private key: 去掉密碼
openssl rsa -in key.pem -out keyout.pem
6、導出公鑰證書
openssl pkcs12 -in butterfly.pfx -nokeys -out certexport.pub
導出私鑰
openssl pkcs12 -in butterfly.pfx -nocerts -out keyexport.pub
7、合並成pfx證書
openssl pkcs12 -export -clcerts -in client.crt -inkey key.pem -out client.p12
8、用openssl察看key(To print out the components of a private key to standard output):
openssl rsa -in key.pem -text -noout
9、生成CSR
openssl req -new -key server.key -out server.csr

E. linux openssl 怎麼禁用證書

windows在判斷證書是否有效時不檢測證書的有效期, 即使該證書超過有效期好幾年了, 只要沒有被吊銷, 微軟仍然認為它是有效的. 但在 openssl 提供的 X509_verify_cert 函數會驗證證書的有效期, 因此需要注釋掉驗證有效期的那部分代碼並重新編譯 op...

F. linux怎麼用openssl生成自簽名證書

這個證書中的簽名與這個私鑰是對應關系,證書中的公鑰和私鑰也是匹配的,可以通過證書中的公鑰對證書進行驗簽

G. linux伺服器ssl怎麼配置證書

一、安裝SSL准備

1.安裝Openssl

要使Apache支持SSL,需要首先安裝Openssl支持。Openssl下載地址http://www.openssl.org/source/

2.安裝Apache

二、申請回SSL證書

去沃通答CA的官網www.wosign.com去申請一張EV SSL證書。

三、安裝SSL證書

四、測試安裝結果

訪問https://+證書綁定的域名,測試效果如下


更多關於Apache部署SSL證書相關問題請查看SSL證書部署指南網頁鏈接或者在線咨詢沃通CA SSL證書部署技術支持,也可移步沃通SSL證書論壇提交問題。

閱讀全文

與linuxopenssl證書相關的資料

熱點內容
馬鞍山潘榮 瀏覽:523
2019年公需課知識產權考試答案 瀏覽:280
基本衛生公共服務項目實施方案 瀏覽:62
初中數學校本研修成果 瀏覽:30
長沙市知識產權局張力 瀏覽:369
榮玉證書 瀏覽:382
凌文馬鞍山 瀏覽:34
石柱鎮工商局 瀏覽:854
鋼鐵發明國 瀏覽:118
創造與魔法怎麼賣人民幣 瀏覽:101
知識產權專題答案 瀏覽:760
高發明巫溪 瀏覽:755
衛生室公共衛生服務考核標准 瀏覽:493
亞洲給水排水有版權嗎 瀏覽:397
湖北省醫療糾紛預防與處理辦法 瀏覽:230
星光創造營後勤在哪 瀏覽:581
北京辦理知識產權 瀏覽:177
交通銀行信用卡有效期是幾年 瀏覽:913
公司協議股權轉讓 瀏覽:531
啥叫擔保物權 瀏覽:60