linux加密认证全面分析
基礎了解篇:
(1)對稱加密
在對稱加密算法中,數據發信方將明文(未加密前的數據)和加密密鑰一起經過特殊加密算法處理后,使其變成復雜的加密密文(加密后的數據)發送出去。收信方收到密文后,若想解讀原文,則需要使用加密用過的密鑰及相同算法的逆算法對密文進行解密,才能使其恢復成可讀明文。也就是說加密和解密使用相同的密碼,對稱加密解密的特點是運算相對非對稱加密解密簡單、速度塊。具有代表性的有DES、AES 3DES。
? NAST:DES(Data Encryption Standard)數據加密標準,使用56位的密鑰實現8輪置換進行加密。
AES(Advanced):高級加密標準,使用的是128位,192位,256位長度的密鑰,可以隨意選擇。
(2)非對稱加密/解密
非對稱加密算法在加密和解密時使用不同的密碼。如果使用公鑰(是從私鑰中提取出來的)對數據進行加密,使用與之配對的私鑰解密;如果用私鑰對數據進行加密,那么只有用配對的公鑰才能解密。非對稱加密的安全性是基于數學函數,特點是運算復雜、速度慢;所以很少有人拿來為大量數據加密。具有代表性的有RSA、DSS、ECC。
解析:
私鑰公鑰適于做身份驗證不適于做網絡加密
公鑰私鑰能保障數據的機密性適于加密認證
(3)單向加密
特點:不管加密的數據多長都會定長輸出;不可逆轉即無法將得到的數據在逆著解密;但是會形成只要數據微小的變化就會導致結果的巨大變化也就是雪崩效應。
單項加密也可以實現數據完整性和實現身份的驗證。關于實現的過程筆者懂但是無法描述清晰只好借助某大神表述:
完整性驗證:
? ?A先用單向加密數據將得到的數據再用自己的私鑰加密附在數據之后發給B;B收到數據后若能用A的公鑰解密出加過密的特征碼則說明這就是A發來的數據,若用單向加密數據能得到和A發來的一模一樣的特征碼說明此數據沒被別人篡改過這樣就保證了數據的完整性
身份驗證:
? ?A用單向加密要發給B的數據得到特征碼,再用自己的私鑰加密此特征碼,將加過密的特征碼附加在數據之后A會用自己生成的對稱密鑰加密這兩段數據再用A的公鑰加密生成的密鑰再次附件在加過密的兩段數據之后發給B;B收到數據后用自己的私鑰解密出密碼然后用此密碼解密出數據,若B能用A的公鑰解出附加在數據之后的特征碼就說明這就是A發來的數據,若B用單向加密得到的數據特征碼和A發來的一模一樣則說明此數據未被篡改過如此一來身份驗證,數據完整性和數據加密便都可實現了但此過程也會遇到無法保證得到的公鑰就是要通信的一方的公鑰。
說實話這位大神的表述我暈了,望各位看客能夠清晰對待啊!!
小加密認證結:利用以上三種加密機制完成一次完整意義上的加密通信:
? ? ? ? 1、發送方使用選定的單向加密算法計算原始數據的特征碼;
? ? ? ? 2、發送方使用自己的私鑰加密特征碼,附加于原始數據后面;
? ? ? ? 3、發送方生成一次性對稱密鑰,并使用此密鑰加密數據(原始數據+加密后的特征碼);
? ? ? ? 4、發送方使用接收方的公鑰加密一次性對稱密鑰,附加于加密數據后面
? ? ? ? 5、發送;
? ? ? ? 1、接收方使用自己的私鑰解密加密的一次性對稱密鑰;
? ? ? ? 2、使用對稱密鑰解密數據,得到加密的特征碼和原始數據;
? ? ? ? 3、使用發送方的公鑰解密加密的特征碼;
? ? ? ? 4、使用與發送方相同的單向加密算法重新計算數據的特征碼,并與解密出的特征做比較;
? ?PKI是Public KeyInfrastructure的縮寫,是指用公鑰概念和技術來實施和提供安全服務的具有普適性的安全基礎設施。
一個典型、完整、有效的PKI應用系統至少應具有以下部分:
? ?端實體(申請者)、注冊機構(RC)、簽證機構(CA)、證書撤消列表(CRL)發布機構、證書存取庫。
操作實踐篇:
OpenSSL工具的使用:
? ?OpenSSL 為網絡通信提供安全及數據完整性的一種安全協議,囊括了主要的密碼算法、常用的密鑰和證書封裝管理功能以及SSL協議,并提供了豐富的應用程序供測試或其它目的使用。
? ?Openssl主要有三部分組成:
? ? ? libcrypto:加密解密程序庫
? ? ? libssl:實現ssl功能
? ? ? openssl:多功能多用途的命令行程序
1)顯示版本信息:使用命令openssl version
| 1 2 | [root@localhost ~]# openssl version OpenSSL 1.0.0-fips 29 Mar 2010 |
2)加密測試:使用命令openssl enc加密:
| 1 2 3 4 5 6 7 8 9 | [root@localhost ~]# cp /etc/fstab ./??????? #復制一個文件進行加密測試 [root@localhost ~]# ls anaconda-ks.cfg? fstab????????install.log.syslog? zsh-4.3.10-5.el6.x86_64.rpm File?????????????install.log? xx.sh [root@localhost ~]# openssl enc -des3 -in fstab -e -out fstab.des3?? #加密 enter des-ede3-cbc encryption password:?????????????????#輸入密碼 Verifying - enter des-ede3-cbc encryption password:????#再次輸入密碼,確認 [root@localhost ~]# cat fstab.des3????????????????????? #查看加密結果 Salted__(? ).q?.?.Os |
? 解析:openssl enc指定加密的類型,-in指定要加密的文件,-e表示加密,-out表示指定加密后要保存的位置
3)解密測試:也是使用openssl enc:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | [root@localhost ~]# rm -rf fstab?????????????? #將文件刪除 [root@localhost ~]# openssl enc -des3 -d -in fstab.des3 -out fstab.txt?????? #解密文件 enter des-ede3-cbc decryption password:?????????????????????????????#輸入加密的密碼 [root@localhost ~]# cat fstab.txt???????????????????????????????????? #查看結果 # # /etc/fstab # Created by anaconda on Fri Jul 12 18:24:30 2013 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/vg0-root????/?????????????????????? ext4??? defaults??????? 1 1 UUID=b60d1298-6614-4daa-89d2-1af13f7e9a66?/boot???????????????????ext4??? defaults??????? 1 2 /dev/mapper/vg0-usr?????/usr????????????????????ext4??? defaults??????? 1 2 /dev/mapper/vg0-var?????/var????????????????????ext4??? defaults??????? 1 2 |
解析:openssl enc指定加密的類型,-d表示解密,-in指定加密后的文件,-out表示指定解密后要保存的位置
4)獲取文件特征碼:使用命令openssl dgst
| 1 2 3 4 5 6 7 | [root@localhost ~]# openssl dgst -md5 fstab.txt?????????? #獲取特征碼 MD5(fstab.txt)= 6e4fe954c8b3e71a44b6c19f4a735453 [root@localhost ~]# openssl dgst -md5 -hex fstab.txt?????? #獲取16進制特征碼,默認是可省略 MD5(fstab.txt)= 6e4fe954c8b3e71a44b6c19f4a735453 [root@localhost ~]# vim fstab.txt?????????????????????? #編輯一下此文檔 [root@localhost ~]# openssl dgst -md5 -hex fstab.txt?????? #重新獲取特征碼 MD5(fstab.txt)= b85044cee63d32fa77dcc2e0c79b90bd?????#幾乎都不同,這就是雪崩效應 |
小拓展:使用md5sum同樣可以獲取文件特征碼
| 1 2 | [root@localhost ~]# md5sum fstab.txt b85044cee63d32fa77dcc2e0c79b90bd? fstab.txt?????????????#獲取結果是相同的 |
5)測試當前主機支持加密算法的速度:使用命令openssl speed
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | [root@localhost ~]# openssl speed des-ede3?????????????? #測試des3的加密算法速度(不加參數會將所有算法都測試一遍) Doing des ede3?for?3s on 16 size blocks: 1838583 des ede3's?in?2.99s Doing des ede3?for?3s on 64 size blocks: 461948 des ede3's?in?3.00s Doing des ede3?for?3s on 256 size blocks: 108654 des ede3's?in?2.99s Doing des ede3?for?3s on 1024 size blocks: 28366 des ede3's?in?3.00s Doing des ede3?for?3s on 8192 size blocks: 3671 des ede3's?in?2.99s OpenSSL 1.0.0-fips 29 Mar 2010 built on: Thu Feb 21 23:42:57 UTC 2013 options:bn(64,64) md2(int) rc4(16x,int) des(idx,cisc,16,int) aes(partial) blowfish(idx) compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DKRB5_MIT -m64 -DL_ENDIAN -DTERMIO -Wall -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -Wa,--noexecstack -DMD32_REG_T=int -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DWHIRLPOOL_ASM The?'numbers'?are?in?1000s of bytes per second processed. type?????????????16 bytes???? 64 bytes??? 256 bytes?? 1024 bytes?? 8192 bytes des ede3????????? 9838.57k???? 9854.89k???? 9302.82k???? 9682.26k??? 10057.80k |
6)隨機生成隨機數 openssl rand:
| 1 2 | [root@localhost ~]# openssl rand -hex 4?????????? #隨機生成8位的隨機數 5e3acc9c |
7)計算密碼值 openssl passwd:
| 1 2 3 | [root@localhost ~]# openssl passwd -1 -salt 12345678???? #通過salt后加密計算密碼值 Password:?????????????????????????????????????????#輸入密碼 $1$12345678$0ME5N6oDyoEAwUp7b5UDM/????????????#生成的值 |
?解析:其中-1表示基于MD5的加密算法;-sart添加一些額外數(一般為8位)盡量使用無規律的隨機數。更多請參考man sslpasswd
| 1 2 3 | [root@localhost ~]# openssl passwd -1 -salt `openssl rand -hex 4`??? #使用salt為隨機數計算密碼值 Password: $1$c4d7ecb7$FUfRyYSh0OHTCp0D4paqr. |
8)生成RSA算法的私鑰:openssl genrsa:
| 1 2 3 4 5 6 7 8 9 10 11 | [root@localhost ~]# openssl genrsa 1024 > mykey.rs? #也可用openssl genrsa -out mykey.rs 1024 Generating RSA private key, 1024 bit long modulus ............++++++ .............++++++ e is 65537 (0x10001) [root@localhost ~]# cat mykey.rs??????????? -----BEGIN RSA PRIVATE KEY----- MIICXAIBAAKBgQCfSs+B4SngclkdU32dpsEurEQQhmmKg5EbCGD6mqcxhcZQpBAh oG2O60/9js1NOcqjUug58HvEeVOY6khnD7XyLoNrCjYm2DnPaRRcATa70ijUTmqk 1hzwLZAp81L22mf4C4tkBuayc1sCS/F+hZVxnKXd3AtIuVE0DczCK8NkmQIDAQAB AoGAf24Nis1h/tf7SmacOx5HtNrCqKWekNynnISbcF+AGTH3cFOPRBdfDdJZb3Jp |
? 解析:openssl genrsa后可直接跟位數,默認為512位;也可使用重定向將內容保存在某文件中,若想加密私鑰可使用openssl genrsa直接跟加密算法進行加密;更多請參考man genrsa
由于是私鑰所以不應該讓別人具有查看權限的所以要改為600或者400權限或者使用如下命令定義權限獲取私鑰:
| 1 2 3 4 5 6 7 8 9 10 11 12 | [root@localhost ~]# ls -l total 2276 -rw-------. 1 root root??? 2409 Jul 12 18:47 anaconda-ks.cfg -rw-r--r--? 1 root root???? 887 Aug? 5 23:32 mykey.rs????????#默認所有人都有權限 [root@localhost ~]# (umask 077; openssl genrsa -out /root/mykey2.pri 2048)? #mask定義權限獲取私鑰 Generating RSA private key, 2048 bit long modulus ........................................................+++ ....................+++ e is 65537 (0x10001) [root@localhost ~]# ls -l total 2280 -rw-------? 1 root root??? 1679 Aug? 5 23:57 mykey2.pri????#文件權限 |
? 解析:謹記這里使用mask設置權限一定要加上括號不然后面創建所有的文件都會變成此權限的,因為它是一直生效的;使用括號表示此命令在一個子shell中執行,完成子shell退出
9)生成RSA的公鑰openssl rsa
| 1 2 3 4 5 6 7 8 | [root@localhost ~]# openssl rsa -in mykey.rs -pubout writing RSA key -----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCfSs+B4SngclkdU32dpsEurEQQ hmmKg5EbCGD6mqcxhcZQpBAhoG2O60/9js1NOcqjUug58HvEeVOY6khnD7XyLoNr CjYm2DnPaRRcATa70ijUTmqk1hzwLZAp81L22mf4C4tkBuayc1sCS/F+hZVxnKXd 3AtIuVE0DczCK8NkmQIDAQAB -----END PUBLIC KEY----- |
?解析:使用openssl rsa –in?指定私鑰文件使用-pubout顯示公鑰信息
10)證書簽署請求openssl req
? 數字證書主要包含以下部分:版本號(version);序列號(證書本身在CA中惟一標識);簽名算法標志;發行者名稱;有效期;證書主體名稱:(組織(主機),個人);證書主體公鑰信息;發行商惟一標志;證書主體的惟一標志;擴展;簽名。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | [root@localhost ~]# openssl req -new -key /root/mykey.pri -out /root/myreq.csr??????? #證書簽署請求 You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter?'.', the field will be left blank. ----- Country Name (2 letter code) [XX]:CN???????????????????#國家名 State or Province Name (full name) []:Henan?????????????#省份名稱 Locality Name (eg, city) [Default City]:Zhengzhou??????????#城市名稱 Organization Name (eg, company) [Default Company Ltd]:Magedu??????#單位名稱 Organizational Unit Name (eg, section) []:Tech????????????#部門名稱 Common Name (eg, your name or your server's?hostname) []:www.magedu.com?????#證書擁有者名稱,若在必須為用戶訪問時的名稱,若使用域名訪問這里是域名,若是IP地址這里一定是IP地址 Email Address []:admin@magedu.com?????????????#郵箱地址(可省略不寫) Please enter the following?'extra'?attributes to be sent with your certificate request A challenge password []:???????????????????????#將請求加密起來輸入密碼,不想直接回車即可 An optional company name []: #這些要輸入的組織信息可以在[root@localhost ~]vim /etc/pki/tls/ openssl.cnf進行更改默認選項設置,這里就不予以說明了;需要注意的是Common Name一定不能使用默認選項啊!! #這樣證書申請就結束了。 |
? ?解析:openssl req(證書簽署請求和證書生成工具)中-key指定私鑰文件的路徑(可自動完成提取公鑰功能);-new指定證書申請;-days明確指定證書申請有效使用期限;-out?將此證書保存為什么文件,通常為.csr結尾的文件;其他更多請man req
11)如何自建CA
-
? 查看解析配置文件
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | [root@localhost ~]# cd /etc/pki/tls/???????????????????? #openssl配置文件目錄 [root@localhost tls]# vim openssl.cnf??????????????????? #編輯配置文件 ####…前方不重要已省略…#### tsa_policy3 = 1.2.3.4.5.7 #################################################################### [ ca ]???????????????????????????????#子命令;更改只對子命令生效 default_ca????? = CA_default????????????# The default ca section #################################################################### [ CA_default ] dir?????????????=?/etc/pki/CA?????????# Where everything is kept??? #自建CA的工作目錄 certs?????????? = $dir/certs???????????# Where the issued certs are kept???? #指定當前CA的證書存取庫的存放位置 crl_dir???????? = $dir/crl??????????????# Where the issued crl are kept?????? #指定證書撤銷列表所在工作目錄 database??????? = $dir/index.txt????????# database index file.???????? #將簽署的證書制作成索引保存下來也就是數據庫文件 #unique_subject = no????????????????? # Set to 'no' to allow creation of ????????????????????????????????????# several ctificates with same subject. new_certs_dir?? = $dir/newcerts?????????# default place for new certs.???? #新簽證書的位置 certificate???? = $dir/cacert.pem???????# The CA certificate??????????? #CA自己的證書位置 serial????????? = $dir/serial???????????# The current serial number???? #已簽證書,序列號 crlnumber?????? = $dir/crlnumber????????# the current crl number???? #已吊銷證書個數 ????????????????????????????????????????# must be commented out to leave a V1 CRL crl???????????? = $dir/crl.pem??????????# The current CRL???? #當前的證書吊銷文件是什么 private_key???? = $dir/private/cakey.pem# The private key?????? #證書頒發機構自己的私鑰文件 RANDFILE??????? = $dir/private/.rand????# private random number file x509_extensions = usr_cert??????????????# The extentions to add to the cert |
-
?自建CA過程:
? 生成一個私鑰;
| 1 2 3 4 5 6 | [root@localhost tls]# cd /etc/pki/CA/ [root@localhost CA]# (umask 077; openssl genrsa -out private/cakey.pem 2048) Generating RSA private key, 2048 bit long modulus ......+++ ...................+++ e is 65537 (0x10001) |
?申請自簽證書
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | [root@localhost CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 365?? #-x509指定證書格式(加這個選項表示自簽證書不加表示申請證書);-days 365 使用期限一年 You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter?'.', the field will be left blank. ----- Country Name (2 letter code) [XX]:CN?????????????#自簽證書要在一個組織內,不然不予理睬 State or Province Name (full name) []:Henan Locality Name (eg, city) [Default City]:Zhengzhou Organization Name (eg, company) [Default Company Ltd]:Magedu Organizational Unit Name (eg, section) []:Tech Common Name (eg, your name or your server's?hostname) []:ca.magedu.com Email Address []:caadmin@magedu.com |
?創建一個序列號文件和一個數據庫文件
| 1 2 | [root@localhost CA]# touch serial index.txt [root@localhost CA]# echo 01 > serial??????? #讓此序列號文件從01開始 |
12)使用此CA幫別人簽署證書:命令 openssl ca
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | [root@localhost ~]# openssl ca -in myreq.csr -out mycert.crt -days 365??? #簽署證書 Using configuration from?/etc/pki/tls/openssl.cnf Check that the request matches the signature Signature ok Certificate Details: ????????Serial Number: 1 (0x1) ????????Validity ????????????Not Before: Aug? 5 18:17:55 2013 GMT ????????????Not After : Aug? 5 18:17:55 2014 GMT ????????Subject: ????????????countryName?????????????? = CN ????????????stateOrProvinceName?????? = Henan ????????????organizationName????????? = Magedu ????????????organizationalUnitName??? = Tech ????????????commonName??????????????? = www.magedu.com ????????????emailAddress????????????? = admin@magedu.com ????????X509v3 extensions: ????????????X509v3 Basic Constraints: ????????????????CA:FALSE ????????????Netscape Comment: ????????????????OpenSSL Generated Certificate ????????????X509v3 Subject Key Identifier: ????????????????F5:21:BC:A2:8B:19:FC:41:DF:41:99:68:E7:90:4D:E5:3F:37:BF:A5 ????????????X509v3 Authority Key Identifier: ????????????????keyid:AE:3D:F8:00:7A:A0:69:C5:B1:1C:F1:9A:20:B2:F0:B0:45:51:FC:32 Certificate is to be certified?until?Aug? 5 18:17:55 2014 GMT (365 days) Sign the certificate? [y/n]:y?????????????#是否確定簽署 1 out of 1 certificate requests certified, commit? [y/n]y??????#再次驗證 Write out database with 1 new entries Data Base Updated |
?解析:openssl ca使用CA簽署證書,-in?申請文件;-out生成證書文件(一般證書文件都是以.crt為后綴的文件;-days簽署的天數);
13)ssl專用的客戶端測試工具:openssls_client
| 1 | #格式:openssl s_client -connect HOST:PORT –CAfile /path/to/cacertfile |-CApath /paht/to/cacertfiles_dir/ -ssl2|-ssl3|-tls1 |
?解析:-connect后指定哪個服務器:端口號;–CAfile /path/to/cacertfile?指定使用哪個CA證書去驗證|或?-CApath/paht/to/cacertfiles_dir/使用哪個目錄下的哪個CA去驗證?-ssl2|-ssl3|-tls1指定ssl協議的版本
續上篇博文《紅帽系列文件共享服務解析》中的CA認證:怎么利用ssl對ftp進行加密認證傳輸?
? ?思路:自建CA—>?簽署協議—> 測試驗證
? ?過程:
自建CA,這里剛剛建立結束就不在重復了
給FTP申請一個證書頒發請求
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | [root@localhost ~]# cd /etc/vsftpd/?????????????????? #切換到Ftp目錄下來 [root@localhost vsftpd]# mkdir ssl??????????????????? #創建一個文件夾存放私鑰 [root@localhost vsftpd]# cd ssl [root@localhost ssl]#? (umask 077; openssl genrsa -out vsftpd.key 2048)?? #生成私鑰 Generating RSA private key, 2048 bit long modulus .................................................................+++ ....................................+++ e is 65537 (0x10001) [root@localhost ssl]# openssl req -new -key vsftpd.key -out vsftpd.csr????? #申請證書簽署 You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter?'.', the field will be left blank. ----- Country Name (2 letter code) [XX]:CN State or Province Name (full name) []:Henan Locality Name (eg, city) [Default City]:Zhengzhou Organization Name (eg, company) [Default Company Ltd]:Magedu Organizational Unit Name (eg, section) []:Tech Common Name (eg, your name or your server's?hostname) []:ftp.magedu.com Email Address []:admin@magedu.com Please enter the following?'extra'?attributes to be sent with your certificate request A challenge password []: An optional company name []: |
CA簽署證書
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | [root@localhost ssl]# openssl ca -in vsftpd.csr -out vsftpd.crt -days 365??? #證書簽署 Using configuration from?/etc/pki/tls/openssl.cnf Check that the request matches the signature Signature ok Certificate Details: ????????Serial Number: 2 (0x2) ????????Validity ????????????Not Before: Aug? 5 19:02:07 2013 GMT ????????????Not After : Aug? 5 19:02:07 2014 GMT ????????Subject: ????????????countryName?????????????? = CN ????????????stateOrProvinceName?????? = Henan ????????????organizationName????????? = Magedu ????????????organizationalUnitName??? = Tech ????????????commonName??????????????? =?ftp.magedu.com ????????????emailAddress????????????? = admin@magedu.com ????????X509v3 extensions: ????????????X509v3 Basic Constraints: ????????????????CA:FALSE ????????????Netscape Comment: ????????????????OpenSSL Generated Certificate ????????????X509v3 Subject Key Identifier: ????????????????BC:AC:5D:EE:D5:F6:E4:61:58:47:9A:93:C4:B3:F8:23:AB:93:E7:63 ????????????X509v3 Authority Key Identifier: ????????????????keyid:AE:3D:F8:00:7A:A0:69:C5:B1:1C:F1:9A:20:B2:F0:B0:45:51:FC:32 Certificate is to be certified?until?Aug? 5 19:02:07 2014 GMT (365 days) Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated [root@localhost ssl]# ls???????????????????????? #查看 vsftpd.crt? vsftpd.csr? vsftpd.key [root@localhost ssl]# |
更改配置文件,實現基于ssl訪問
| 1 2 3 4 5 6 7 8 9 10 11 | [root@localhost vsftpd]# vim vsftpd.conf #SSL ssl_enable=YES??????????????????????????#是否支持ssl ssl_tlsv1=YES????????????????????????????#支持tlsv1 ssl_sslv2=YES????????????????????????????#支持sslv2 ssl_sslv3=YES????????????????????????????#支持sslv3 allow_anon_ssl=NO???????????????????????#匿名用戶無法訪問 force_local_data_ssl=YES???????????????????#本地數據訪問使用ssl force_local_logins_ssl=YES??????????????????#本地用戶登錄使用ssl rsa_cert_file=/etc/vsftpd/ssl/vsftpd.crt????????#指定ssl證書 rsa_private_key_file=/etc/vsftpd/ssl/vsftpd.key?????????#指定ssl私鑰文件 |
重新啟動服務
| 1 2 3 | [root@localhost vsftpd]# service vsftpd reload Shutting down vsftpd:???????????????????????????????????????? [? OK? ] Starting vsftpd?for?vsftpd:?????????????????????????????????? [? OK? ] |
使用基于SSl登錄系統
? ?解析:這里由于證書名稱和ftp連接服務器的名稱寫的不一致所有會導致證書不匹配,所以以后我們要把證書名稱設置一致。
? ?連接成功,這時所有的操作都是基于ssl證書進行了。
總結:加密認證技術涵蓋所有服務器;應認真對待好好熟練。
本文轉自 z永 51CTO博客,原文鏈接:http://blog.51cto.com/pangge/1280171
總結
以上是生活随笔為你收集整理的linux加密认证全面分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: EC-Net: a Edge-aware
- 下一篇: GO相同文件夹下相同package不同文