? ? ?
????????現(xiàn)在我們想架設(shè)一個(gè) 互聯(lián)網(wǎng)網(wǎng)站的話,我們就得想法認(rèn)證自己是官方的,得產(chǎn)生一個(gè)證書
? ? ? ? 這個(gè)證書呢,我們使用的是 X.509? 格式的證書?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 該證書 包含三個(gè)文件 :? key , csr , crt 。??
? ? ? ? 先介紹下 :?
PKI(Public Key Infrastructure)公鑰基礎(chǔ)設(shè)施是提供公鑰加密和數(shù)字簽名服務(wù)的系統(tǒng)或平臺(tái),目的是為了管理密鑰和證書。一個(gè)機(jī)構(gòu)通過采用PKI 框架管理密鑰和證書可以建立一個(gè)安全的網(wǎng)絡(luò)環(huán)境
PKI 主要包括四個(gè)部分:X.509 格式的證書(X.509 V3)和證書廢止列表CRL(X.509 V2);CA 操作協(xié)議;CA管理協(xié)議;CA政策制定
X.509通用的證書格式包含三個(gè)文件:key,csr,crt。
===>>>
key是私鑰文件
csr是證書簽名請(qǐng)求文件,用于提交給證書頒發(fā)機(jī)構(gòu)(CA)對(duì)證書簽名
crt是由證書頒發(fā)機(jī)構(gòu)(CA)簽名后的證書,或者是開發(fā)者自簽名的證書,包含證書持有人的信息,持有人的公鑰,以及簽署者的簽名等信息
使用 Apache + mod_ssl 組件的加密認(rèn)證網(wǎng)站? :?
? ?
???? ?概念 :? ?
? ? ? ? ? ? 因?yàn)?Apache ( httpd )? 是沒有任何安全性的限制的?,所以需要安裝一個(gè) mod_ssl?組件。
? ? ? ? ? ? mod_ssl 組件?:? ? 是 Apache 的一個(gè)模塊,以 openssl ( 就相當(dāng)于 ssh)?的工具箱為基礎(chǔ)?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?專門為 Apache 提供密碼保護(hù)的一種組件模塊兒~~!!
預(yù)備工作? :?
? ?安裝? Apache ( httpd )?
? ?===>>>?? ??
[root@server ~]# dnf install httpd -y
? ?安裝 mod_ssl 組件? :?
? ? ===>>>?????????????????
[root@server ~]# dnf install mod_ssl -y
? ? ?配置文件? :?
?主配置文件 :? /etc/httpd/conf.d/ssl.conf
?證書文件目錄 : /etc/pki/tls/certs/xxxx.crt? (? 以? .crt 結(jié)尾的都是 證書文件 )
?私鑰文件? :???/etc/pki/tls/private/xxxx.key? ?( 以? .key? ?)
? ? ? ?
? ? ? 進(jìn)入主配置文件看看? :?
[root@server ~]# vim /etc/httpd/conf.d/ssl.conf
? ? ?===>>>
5 Listen 443 https # 監(jiān)聽端口號(hào) ( 443 )
18 SSLPassPhraseDialog exec:/usr/libexec/httpd-ssl-pass-dialog # 存儲(chǔ)證書的密碼信息
23 SSLSessionCache shmcb:/run/httpd/sslcache(512000) # ssl 的緩存 及 存儲(chǔ)位置
24 SSLSessionCacheTimeout 300 # 緩存的超時(shí)時(shí)長
40 <VirtualHost _default_:443> # 重要** 定義虛擬主機(jī)的信息,配置
48 ErrorLog logs/ssl_error_log # 錯(cuò)誤日志
49 TransferLog logs/ssl_access_log # 傳輸日志
50 LogLevel warn # 日志等級(jí)
54 SSLEngine on # SSL 引擎是否開啟 ( on 開啟 )
66 SSLHonorCipherOrder on # 協(xié)商算法 ( 是否開啟 )
85 SSLCertificateFile /etc/pki/tls/certs/localhost.crt # 證書存儲(chǔ)路徑 ( 建議主機(jī)名 來表示,你主機(jī)名是啥,localhost 就是啥 )
93 SSLCertificateKeyFile /etc/pki/tls/private/localhost.key # 私鑰文件路徑
202 </VirtualHost> # 虛擬主機(jī)結(jié)束定義
? ? ? ? ? ? ? ? ? ? ? ? *? ? 第一列數(shù)字為 行號(hào)?
? ? ? ? ? ? ? ? ? ? ? ? *? ? 從 第 40 行 開始 到 202 行 結(jié)束 都是 虛擬主機(jī) 的相關(guān)配置
?
??????切換到 證書文件目錄 看看 :?
[root@server ~]# cd /etc/pki/tls/certs
[root@server certs]# ls
ca-bundle.crt ca-bundle.trust.crt
? ? ?就可以看到 以? .crt? ?結(jié)尾的文件 (? 即是 數(shù)字證書 )
?實(shí)驗(yàn)? :?
? ? ? ?*? ?搭建 HTTP + SSL? 的加密認(rèn)證Web 服務(wù)器?
? ? ?
? ? ?? *? ? 準(zhǔn)備工作? ( 就和 預(yù)備工作 一樣 )
? ? ? ? ? ?#? ? 關(guān)閉 Selinux? 及 防火墻??
[root@server ~]# setenforce 0
[root@server ~]# systemctl stop firewalld
? ? ? ? ? ?#? ? 安裝? :?
[root@server ~]# dnf install httpd -y
[root@server ~]# dnf install mod_ssl -y
? ? ? ? ? #? ? 新建網(wǎng)頁存儲(chǔ)目錄, 并使用 xftp 上傳網(wǎng)頁文件??
[root@server ~]# mkdir -p /www/andy
? ? ? ? ? ? ? ? XFTP 上傳文件?
? ? ? ? ? ? ? ? ===>>>?????????????????
?
? ? ? ?
?????????*? ?在? /etc /pki /tls /private? ?目錄下生成私鑰文件? ? ? ??
? ? ? ? ? ? ?#? 私鑰文件必須建立在指定目錄下? ( 前面介紹 主文件配置里 就有 )
? ? ? ? ? ? ? ? ?===>>>?? ? ? ? ? ? ??
[root@server ~]# cd /etc/pki/tls/private/
? ? ? ? ? ? ? ? ?就在這個(gè)目錄下建立 私鑰文件??
??????????? #? 還得介紹一個(gè)新命令? >>>>>? ?openssl??
? ? ? ? ?? ?#? ?建立私鑰文件過程??
? ? ? ? ? ? ? ? ===>>>>?
[root@server private]# openssl genrsa -aes128 2048 > andy.key # 建一個(gè)私鑰文件,名為 andy.key
Enter PEM pass phrase: # 鍵入了 123456 ( 是不顯示的,意思是對(duì)私鑰還要再加密一下 )
Verifying - Enter PEM pass phrase: # 再次輸入密碼
[root@server private]# ls # 顯示下有沒有文件,顯示出了
andy.key
? ? ? ? ? ?我們就是通過 opensll 命令 ( 是一個(gè)加密組件的命令 ) , genrsa 是建立私鑰文件的,
? ? ? ? ? ?-aes128? 2048 ( 設(shè)置 密鑰位數(shù)? )? ?
? ? ? ? ? ?>? andy.key? 把信息寫到 andy.key 文件中 ( andy.key 就是 私鑰文件名稱 )
? ? ? ?
??????? *? ?在? ?/etc/pki//tls/certs 目錄下 新建證書?
? ? ? ? ? ? 實(shí)操 :?
[root@server ~]# cd /etc/pki/tls/certs # 在該目錄下 新建證書
[root@server certs]# openssl req -utf8 -new -key /etc/pki/tls/private/andy.key -x509 -days 365 -out andy.crt
Enter pass phrase for /etc/pki/tls/private/andy.key: # 輸入私鑰加密密碼 ( 前面的 123456)
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]:86
State or Province Name (full name) []:shanxi
Locality Name (eg, city) [Default City]:xi'an
Organization Name (eg, company) [Default Company Ltd]:openlab
Organizational Unit Name (eg, section) []:RHCE
Common Name (eg, your name or your server's hostname) []:localhost
Email Address []:andy@qq.com
? ===>>>?
? ? ?#? 我們要建立自己的證書 ( 在上示目錄下 是已經(jīng)有兩個(gè) 證書文件的 ) 我們要建立自己的證書
? ? ? ? ? 而且自己建立的證書 還要 匹配前面的私鑰 ~??!
? ? ?#? ?還是使用的 openssl 命令, req 是專門用來建立 證書的, 證書的字符編碼 : utf8??
? ? ? ? ? -new? 表示 新建, -key? 代表加密, 緊接著的路徑 是 證書的私鑰路徑 ,
? ? ? ? ? -x509 是證書的制作協(xié)議,? -days? 是 證書的有效期 365 天,?
? ? ? ? ? - out? 代表把證書 輸?shù)?什么地方去 ( 可以是相對(duì)路徑我們用的就是相對(duì)路徑,也可以絕對(duì)
??????????路徑)?
? ? ? ? ? 當(dāng)這一串命令執(zhí)行完成后, 會(huì)讓你輸入 私鑰的密碼 ( 就是 你當(dāng)時(shí)設(shè)置的密碼 - 123456 )
? ? ? ? ? ?
? ? ? ? ??執(zhí)行完成后 就到了輸入證書的相關(guān)信息 :?
????????? 第一行 : 國家名稱 ( 是以 編碼輸入的,我們國家是 86 )?
? ? ? ? ? 第二行 : 省名稱??
? ? ? ? ? 第三行 : 城市名稱?
? ? ? ? ? 第四行 : 公司名稱??
? ? ? ? ? 第五行?:?公司部門?
? ? ? ? ? 第六行 :?當(dāng)前主機(jī)名 (你有主機(jī)名就寫主機(jī)名,沒有主機(jī)名那就寫通用主機(jī)名 - localhost )
? ? ? ? ? 第七行? :郵箱地址?
? ? ? ? ? 我們?yōu)g覽下 看下目錄里面 有沒有 我們剛才建的 證書文件??
? ? ? ? ? ===>>>?
? ? ? ???
? ? ? ? ? 我們大致瀏覽下 andy.crt 文件的內(nèi)容?
? ? ? ? ? ===>>>?
? ? ? ? ??
?????????
????????文章來源地址http://www.zghlxwxcb.cn/news/detail-471439.html
? ? ? *? ?主配置文件的編輯,輸入新的配置信息?
? ? ? ? ? 打開主配置文件
? ? ? ? ? ===>>>
[root@server certs]# vim /etc/httpd/conf.d/ssl.conf
? ? ? ? ? 進(jìn)入配置文件,調(diào)至最后,添加內(nèi)容 :?
??????????????????
? ? ? ? ? 我們直接就在 主配置文件,定位最后一行,添加上示標(biāo)記內(nèi)容。?
? ? ? ? ? 對(duì)上式添加內(nèi)容做以說明?
? ? ? ? ? ===>>>??
204 <VirtualHost 192.168.153.130:443> # 訪問的IP地址 及 端口號(hào)
205 SSLEngine on # 開啟 ssl 引擎
206 SSLCertificateFile /etc/pki/tls/certs/andy.crt # 證書路徑
207 SSLCertificateKeyFile /etc/pki/tls/private/andy.key # 私鑰路徑
208 ServerName 192.168.153.130 # 主機(jī)名
209 DocumentRoot /www/andy # 網(wǎng)頁啟動(dòng)目錄
210 </VirtualHost>
211
212 <Directory /www/andy> # 網(wǎng)站目錄的權(quán)限
213 AllowOverride none
214 Require all granted
215 </Directory>
? ? ? ?上示內(nèi)容,添加完成后,重啟 Apache ( 重啟 Httpd )
? ? ? ? ===>>>?
[root@server ~]# systemctl restart httpd
??? ??
? ?重啟之后,會(huì)讓你輸入 私鑰加密密碼( 之前設(shè)置的私鑰加密密碼 )?
??
? ?輸入完 密鑰之后即可? 驗(yàn)證?
? ? 驗(yàn)證實(shí)驗(yàn)? :?
? ? ?在網(wǎng)站上驗(yàn)證 :?
? ? ?
? ? ? ?點(diǎn)擊 高級(jí) (? 在 地址欄輸入? https://? IP 地址 )?
? ? ? ?
? ? ? ? 即 驗(yàn)證成功 ~?。。?!
??文章來源:http://www.zghlxwxcb.cn/news/detail-471439.html
????????
到了這里,關(guān)于Linux -- 進(jìn)階 Web服務(wù)器 搭建基于 HTTPS 協(xié)議的靜態(tài)網(wǎng)站 (實(shí)驗(yàn)實(shí)操)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!