首頁 > 軟體

Ubuntu安裝OpenSSL

2020-06-16 17:51:36

一、OpenSSL簡單介紹

OpenSSL 是一個強大的安全通訊端層密碼庫,囊括主要的密碼演算法、常用的金鑰和證書封裝管理功能及SSL協定,並提供豐富的應用程式供測試或其它目的使用。

SSL是Secure Sockets Layer(安全通訊協定協定)的縮寫,可以在Internet上提供秘密性傳輸。SSL能使使用者/伺服器應用之間的通訊不被攻擊者竊聽,並且始終對伺服器進行認證,還可選擇對使用者進行認證。SSL協定要求建立在可靠的傳輸層協定(TCP)之上。

通過OpenSSL提供FTP+SSL/TLS認證功能,並實現安全資料傳輸 http://www.linuxidc.com/Linux/2013-05/84986.htm

Linux下使用OpenSSL生成證書 http://www.linuxidc.com/Linux/2015-05/117034.htm

利用OpenSSL簽署多域名證書 http://www.linuxidc.com/Linux/2014-10/108222.htm

在OpenSSL中新增自定義加密演算法  http://www.linuxidc.com/Linux/2015-08/121749.htm

二、安裝相應軟體包

$ sudo apt-get install apache2      ##安裝Apache

$ sudo apt-get install openssl      ##安裝openssl

$ sudo apt-get install libssl-dev    ##安裝openssl開發庫

$ sudo apt-get install bless      ##編輯器使用 bless 十六進位制編輯器,需預先安裝

三、openssl.cnf簡單釋義

$ vi /usr/lib/ssl/openssl.cnf
127 [ req_distinguished_name ]
128 countryName                    = Country Name (2 letter code)##國家名,2個字母程式碼簡稱
129 countryName_default            = CN  ##中國就是CN
130 countryName_min                = 2
131 countryName_max                = 2
132
133 stateOrProvinceName            = State or Province Name (full name)##州或省的名字
134 stateOrProvinceName_default    = beijing
135
136 localityName                    = Locality Name (eg, city)  ##本地城市名
137 localityName_default            =beijing
138 0.organizationName              = Organization Name (eg, company) ##組織(公司)名
139 0.organizationName_default      = beijing www company
140
145 organizationalUnitName          =Organizational Unit Name(eg,section)##組織單元(部門)名
146 organizationalUnitName_default  = www
147
148 commonName                      = Common Name(e.g.server FQDN or YOUR name)##伺服器域名
149 commonName                      = www.baidu.com
150 commonName_max                  = 64
151
152 #emailAddress                  = Email Address      ##Email地址
153 emailAddress                    = admin@baidu.com
154 emailAddress_max                = 64
155
156 # SET-ex3                      = SET extension number 3
157
158 [ req_attributes ]
159 #challengePassword              = A challenge password  ##修改密碼
160 challengePassword              =
161
163 challengePassword_min          = 4
164 challengePassword_max          = 20

四、成為數位憑證認證機構(CA),並為該CA生成證書

①將openssl.cnf組態檔拷貝到當前目錄下並建立以下在組態檔中指定的子資料夾

$ sudo ln /usr/lib/ssl/openssl.cnf .

$ mkdir demoCA

$ cd demoCA

$ mkdir certs crl newcerts

$ touch index.txt serial  ##index.txt為空;

##serial必須寫入內容,且為字串格式的數位(比如1111)

設定好這些後,現在就可以建立和發布證書了

②為自己的 CA 生成自簽名證書,這意味著該機構是被信任的,而它的證書會作為 root 證書

$ openssl req -new -x509 -keyout ca.key -out ca.crt -config openssl.cnf

注:務必記住自己所輸入的密碼,命令輸出的檔案儲存:ca.key 與 ca.crt 中。檔案 ca.key 包括 CA 的私鑰,而 ca.crt 包含了公鑰證書。

五、為客戶生成證書

現在,我們是 root CA 了,可以為客戶簽數位憑證了,客戶是www.baidu.com。

①生成公開/私有金鑰對

$ openssl genrsa -des3 -out server.key 1024

注:需要提供一個密碼來保護你的金鑰,金鑰會被儲存在 server.key 檔案中.

②生成證書簽名請求 ,一旦公司擁有了金鑰檔案,它應當生成證書簽名請求(CSR)。CSR 將被傳送給 CA,CA 會為該請求生成證書(通常在確認 CSR 中的身份資訊匹配後)。

$ openssl req -new -key server.key -out server.csr -config openssl.cnf

註:請記住自己的輸入

③生成證書。CSR 檔案需要擁有 CA 的簽名來構成證書(在現實世界中,CSR 檔案常常被傳送給可信任的 CA 簽名)。輸入CA的金鑰,使用我們自己的 CA 來生成證書:

$ openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config openssl.cnf


IT145.com E-mail:sddin#qq.com