linux 下Openssl的安裝配置與使用方法

來源:互聯網
上載者:User


1.   Openssl介紹

自己網上找去吧,我說的不好!

2.   安裝
1、下載地址:http://www.openssl.org/source/ ;下一個最新新版本的OpenSSL,版本是:openssl-1.0.2-beta1.tar.gz

2、在下載的目錄中,用命令執行:tar -xzf openssl-openssl-1.0.2-beta1.tar.gz

3、進入解壓的目錄:openssl-1.0.2-beta1  [.......]#cd openssl-1.0.2-beta1

4、[.....openssl-1.0.2-beta1]# ./config --prefix=/usr/local/openssl

5、[...../openssl-1.0.2-beta1]# ./config -t

6、[...../openssl-1.0.2-beta1]# make depend    (時間很長)

7、[.../openssl-1.0.2-beta1]# make                     (時間很長,慢慢等待)

8、[.../openssl-1.0.2-beta1]# maketest

9、[.../openssl-1.0.2-beta1]# makeinstall

10、[...../openssl-1.0.2-beta1]# cd /usr/local

11、[/usr/local]# ln -s openssl ssl

12、在/etc/ld.so.conf檔案的最後面,添加如下內容:/usr/local/openssl/lib

13...]# ldconfig

14添加OPESSL的環境變數:

在etc/的profile的最後一行,添加:

export OPENSSL=/usr/local/openssl/bin

export PATH=$OPENSSL:$PATH:$HOME/bin

15退出命令介面,再從新登入。

16、以上OPENSSL就安裝完畢,下面進行一些檢查。

17依次如下執行:

[root@localhost /]# cd /usr/local

[root@localhost local]# ldd /usr/local/openssl/bin/openssl

會出現類似如下資訊:

linux-vdso.so.1 =>  (0x00007fff3bc73000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fc5385d7000)
libc.so.6 => /lib64/libc.so.6 (0x00007fc538279000)
/lib64/ld-linux-x86-64.so.2 (0x00007fc5387db000)
18查看路徑

...]# which openssl

/usr/local/openssl/bin/openssl

19、...]# openssl version

OpenSSL 1.0.2-beta1 24 Feb 2014

3.   錯誤情況
自己寫的程式出現這個(fatal error: openssl/sha.h: No such fileor directory)或者相似的問題,一開始以為是環境變數的問題,重裝了幾次,後來差了網路才知道問題所在,都是沒有安裝libssl-dev,libssl-dev包含libraries, header files and manpages,他是openssl的一部分,而openssl對ssl進行了實現。解決方案:使用sudo apt-get install libssl-dev來安裝libssl-dev即可註:部分為網上抄襲!


下面來看使用方法,產生RSA

3.1  公私密金鑰對產生

命令解析:openssl genrsa[-out filename] [-passout arg] [-des] [-des3] [-idea]     [-f4][-3] [-rand file(s)] [numbits]

OPTIONS

-out filename    私人密鑰輸入檔案名稱,預設為標準輸出。

-passout arg 參看指令dsa裡面的passout參數說明    -des|-des3|-idea   採用什麼密碼編譯演算法來加密我們的密鑰。一般會要你輸入保護密碼。   如果這三個中一個也沒set, 我們的密鑰將不被加密而輸入。

-F4|-3    使用的公用組件,一種是3, 一種是F4, 我也沒弄懂這個option是什麼意思。

-randfile(s)    產生key的時候用過seed的檔案,可以把多個檔案用冒號分開一起做seed.

-numbits    指明產生的參數的長度。必須是本指令的最後一個參數。如果沒有指明,則產生512bit長的參數。   研究過RSA演算法的人肯定知道,RSA的私人密鑰其實就是三個數字,其中倆個是質數。這倆個呢,就叫prime numbers.產生RSA私人密鑰的關鍵就是產生這倆。還有一些其他的參數,引導著整個私人密鑰產生的過程。因為產生私人密鑰過程需要很多隨機數,這個過程的時間是不固定的。

//root@ubuntu:/mnt/hgfs/windows_linux/AlipayEx/study/opensslstudy/study#openssl genrsa -out RSAPrivateKey.pem  1024

//root@ubuntu:/mnt/hgfs/windows_linux/AlipayEx/study/opensslstudy/study#openssl rsa -in RSAPrivateKey.pem -pubout -out RSAPublicKey.pem

 

3.2  讀取密鑰

PEM_read_RSAPrivateKey

PEM_read_RSA_PUBKEY

具體參數看文檔去吧!

3.3  加解密

公開金鑰加密,私密金鑰解密

RSA_public_encrypt

RSA_private_decrypt

具體參數看文檔去吧!

3.4  簽名

私密金鑰簽名,公開金鑰驗簽

SHAwithRSA

1.SHA1M(自己封裝的)

2. RSA_sign(/*sha1withRSA第一個參數為NID_sha1,第二第三個參數為明文的sha1摘要及長度SA_verify

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.