給未來的裕翔
如果想要開放https連線實啟動CA
但又不想之後開機也得輸入啟動httpd所需要的passphrase
可以如下操作
openssl rsa -in newkey.pem -out newkey.pem.tmp
mv newkey.pem newkey.pem.bak
mv newkey.pem.tmp newkey.pem
這樣就可以了
Showing posts with label openssl. Show all posts
Showing posts with label openssl. Show all posts
Tuesday, June 1, 2010
Tuesday, May 18, 2010
openssl對檔案加密
給未來的裕翔
openssl des3 -in filename -out filename2
輸入密碼兩次後, 把filename2傳給對方
對方執行
openssl des3 -d -in filename2 -out filename3
輸入你告知對方的密碼
如果只想看檔案內容而不另存新檔的話, -out filename3可以不用打
雖然看似平常
其實有個問題, 我如何安全的把密碼告知對方?
而以上加密解密都是同一把key, 稱為symmetric加密
openssl des3 -in filename -out filename2
輸入密碼兩次後, 把filename2傳給對方
對方執行
openssl des3 -d -in filename2 -out filename3
輸入你告知對方的密碼
如果只想看檔案內容而不另存新檔的話, -out filename3可以不用打
雖然看似平常
其實有個問題, 我如何安全的把密碼告知對方?
而以上加密解密都是同一把key, 稱為symmetric加密
加密介紹&指令
給未來的裕翔
先很快講一下md5sum
對任意檔案md5sum filename可以跑出一串固定長度的亂碼
這就是one-way hase
非加密, 只是拿來驗證用
接著介紹symmetric加密
symmetric的意思就是加密解密都用同一把key
那問題來了, 怎麼安全的把key傳給對方
萬一中間被誰拿到這把key
不就誰都可以解我加密過的東西了?
於是產生了asymmetric加密
asymmetric加密就是產生兩把key, private key和public key
用其中任一把解另一把加密的資料
舉例來說, 現在有兩個角色, client和server
當client對server請求https服務時
server會產生private key和public key, 簡稱server-pri & server-pub
server接著傳server-pub給client
然後client自己有把session key
利用server-pub把自己的session-key加密變成server-pub(session-key)
傳給server後, server利用server-pri解server-pub(session-key)
這樣依然有個問題
一開始client怎麼知道它請求服務的對象, 就是真正的server?
於是我們需要公正的第三方, CA
有了CA之後, 真正的sever為了要請公正的CA證明自己是真的server
填一張CSR(Certificate Service Request)給CA
裡面包含
1. Server info
2. Server pub
加上CA自己的
3. CA info
4. Expiration
然後CA對這四個資訊進行onw-way hash得到一個叫fingerprint的東東
利用CA自己的private key, 簡稱CA-pri, 來對它加密成CA-pri(fingerprint)
剛才的四個資訊+CA-pri(fingerprint)合稱D.C.(digital certificate)
回傳給server
之後, 如果有client跟server請求https服務
server就回傳給它一個D.C.(數位憑證)
那client對D.C.裡面的四個資訊進行one-way hash得到自己算的fingerprint
再使用隨處可得的CA的public key, 簡稱CA-pub
來解D.C.裡面的CA-pri(fingerprint)
比較兩個fingerprint
如果一樣, 就表示"server不但自稱就是我要找的它, CA也說就是它"
這樣就可以相信"我要找的它"
以上, 上課聽了兩次, 這次終於把它記下來了^^
屁了一堆, 接著講解怎麼操作
由於跟真的CA申請憑證要錢的, 不過就是承認我嘛......
所以我要自己當CA
到/etc/pki/tls/misc, 裡面有個叫CA的script
首先, 我要扮演server的角色, 跟CA申請一個CSR(certificate service request)
./CA -newreq
自己填需要的資料吧~ 中間會需要建server的passphrase, 要給(理由我忘了)
會產生newkey.pem(server的private key)
和newreq.pem(含有1. Server info, 2. Server pub)
我要為自己建立一個偽CA公司^^
./CA -newca
照舊, 自己填需要的資料, 這也需要建一個CA的passphrase
搞定後, 會多出一個/etc/pki/CA資料夾, 這就是我的偽CA公司^^
再來, 身為一個CA公司, 我當然要同意server跟我申請的CSR囉
操作位置依然是在/etc/pki/tls/misc
./CA -sign
它會對newreq.pem產生newcert.pem, 這就是D.C.(數位憑證)了
目前先到這裡, 因為老師也只講到這裡
註記: 老師說只要扯到private key就需要一個passphrase
註記: 一定要./CA -xxx, 不能/etc/pki/tls/misc/CA -xxx
因為CA script裡面用到很多相對位置
根據執行CA script所在位置的相對位置, 所以預設是在/etc/pki/tls/misc/底下執行
那我們就別耍酷/etc/pki/tls/misc/CA -xxx
報告完畢, 未來的裕翔一定會很感謝我^^
先很快講一下md5sum
對任意檔案md5sum filename可以跑出一串固定長度的亂碼
這就是one-way hase
非加密, 只是拿來驗證用
接著介紹symmetric加密
symmetric的意思就是加密解密都用同一把key
那問題來了, 怎麼安全的把key傳給對方
萬一中間被誰拿到這把key
不就誰都可以解我加密過的東西了?
於是產生了asymmetric加密
asymmetric加密就是產生兩把key, private key和public key
用其中任一把解另一把加密的資料
舉例來說, 現在有兩個角色, client和server
當client對server請求https服務時
server會產生private key和public key, 簡稱server-pri & server-pub
server接著傳server-pub給client
然後client自己有把session key
利用server-pub把自己的session-key加密變成server-pub(session-key)
傳給server後, server利用server-pri解server-pub(session-key)
這樣依然有個問題
一開始client怎麼知道它請求服務的對象, 就是真正的server?
於是我們需要公正的第三方, CA
有了CA之後, 真正的sever為了要請公正的CA證明自己是真的server
填一張CSR(Certificate Service Request)給CA
裡面包含
1. Server info
2. Server pub
加上CA自己的
3. CA info
4. Expiration
然後CA對這四個資訊進行onw-way hash得到一個叫fingerprint的東東
利用CA自己的private key, 簡稱CA-pri, 來對它加密成CA-pri(fingerprint)
剛才的四個資訊+CA-pri(fingerprint)合稱D.C.(digital certificate)
回傳給server
之後, 如果有client跟server請求https服務
server就回傳給它一個D.C.(數位憑證)
那client對D.C.裡面的四個資訊進行one-way hash得到自己算的fingerprint
再使用隨處可得的CA的public key, 簡稱CA-pub
來解D.C.裡面的CA-pri(fingerprint)
比較兩個fingerprint
如果一樣, 就表示"server不但自稱就是我要找的它, CA也說就是它"
這樣就可以相信"我要找的它"
以上, 上課聽了兩次, 這次終於把它記下來了^^
屁了一堆, 接著講解怎麼操作
由於跟真的CA申請憑證要錢的, 不過就是承認我嘛......
所以我要自己當CA
到/etc/pki/tls/misc, 裡面有個叫CA的script
首先, 我要扮演server的角色, 跟CA申請一個CSR(certificate service request)
./CA -newreq
自己填需要的資料吧~ 中間會需要建server的passphrase, 要給(理由我忘了)
會產生newkey.pem(server的private key)
和newreq.pem(含有1. Server info, 2. Server pub)
我要為自己建立一個偽CA公司^^
./CA -newca
照舊, 自己填需要的資料, 這也需要建一個CA的passphrase
搞定後, 會多出一個/etc/pki/CA資料夾, 這就是我的偽CA公司^^
再來, 身為一個CA公司, 我當然要同意server跟我申請的CSR囉
操作位置依然是在/etc/pki/tls/misc
./CA -sign
它會對newreq.pem產生newcert.pem, 這就是D.C.(數位憑證)了
目前先到這裡, 因為老師也只講到這裡
註記: 老師說只要扯到private key就需要一個passphrase
註記: 一定要./CA -xxx, 不能/etc/pki/tls/misc/CA -xxx
因為CA script裡面用到很多相對位置
根據執行CA script所在位置的相對位置, 所以預設是在/etc/pki/tls/misc/底下執行
那我們就別耍酷/etc/pki/tls/misc/CA -xxx
報告完畢, 未來的裕翔一定會很感謝我^^
Subscribe to:
Posts (Atom)