瀏覽量:54次
1.生成自簽名的證書
通常要配置https的服務(wù)器,都需要一個(gè)由正式的CA機(jī)構(gòu)認(rèn)證的X509證書。當(dāng)客戶端連接https服務(wù)器時(shí),會(huì)通過CA的共鑰來(lái)檢查這個(gè)證書的正確性。但要獲得CA的證書是一件很麻煩的事情,而且還要花費(fèi)一定的費(fèi)用。因此通常一些小的機(jī)構(gòu)會(huì)是使用自簽名的證書。也就是自己做CA,給自己的服務(wù)器證書簽名。
這個(gè)過程有兩個(gè)主要的步驟,首先是生成自己的CA證書,然后再生成各個(gè)服務(wù)器的證書并為它們簽名。我是用OpenSSL來(lái)生成自簽名證書的。
第一步是制作CA的證書:
opensslgenrsa-des3-outmy-ca.key2048
opensslreq-new-x509-days3650-keymy-ca.key-outmy-ca.crt
這會(huì)生成my-ca.key和my-ca.crt文件,前者存放著使用my-ca.crt制作簽名時(shí)必須的密鑰,應(yīng)當(dāng)妥善保管。而后者是可以公開的。上面的命令為my-ca.key設(shè)定的有效期為10年。
用命令
opensslx509-inmy-ca.crt-text-noout
可以查看my-ca.crt文件的內(nèi)容。
有了CA證書之后,就可以為自己的服務(wù)器生成證書了:
opensslgenrsa-des3-outmars-server.key1024
opensslreq-new-keymars-server.key-outmars-server.csr
opensslx509-req-inmars-server.csr-outmars-server.crt-sha1-CAmy-ca.crt-CAkeymy-ca.key-CAcreateserial-days3650
前兩個(gè)命令會(huì)生成key、csr文件,最后一個(gè)命令則通過my-ca.crt為mars-server.csr制作了x509的簽名證書。
需要注意的是,在執(zhí)行上述第二個(gè)命令時(shí),CommonName選項(xiàng)應(yīng)當(dāng)輸入的是服務(wù)器的域名,否則在用戶通過https協(xié)議訪問時(shí)每次都會(huì)有額外的提示信息。
用命令
opensslx509-inmars-server.crt-text-noout
可以查看mars-server.crt文件的內(nèi)容。
2.配置Apache服務(wù)器
首先,創(chuàng)建/etc/apache2/ssl目錄,將剛剛制作的my-ca.crt、mars-server.key和mars-server.crt文件拷貝到這個(gè)目錄中。
接著執(zhí)行命令
a2emodssl
激活A(yù)pache的SSL模塊,然后在/etc/apache2/sites-enable/中添加虛擬主機(jī),這個(gè)過程與添加普通的虛擬主機(jī)類似,不同點(diǎn)在于該主機(jī)的端口應(yīng)為443。配置如下:
NameVirtualHost*:443
ServerNamelocalhost
DocumentRoot/var/www
SSLEngineOn
SSLCipherSuiteHIGH:MEDIUM
SSLProtocolall-SSLv2
SSLCertificateFile/etc/apache2/ssl/mars-server.crt
SSLCertificateKeyFile/etc/apache2/ssl/mars-server.key
SSLCACertificateFile/etc/apache2/ssl/my-ca.crt
Orderdeny,allow
Allowfromlocalhost
ServerNamelocalhost
DocumentRoot/var/www
Allowfromlocalhost
以上配置保證了用戶在訪問443和80端口時(shí)可以看到相同的內(nèi)容,而僅僅是使用的協(xié)議不同。修改好配置后,便可以重啟Apache服務(wù)器,這時(shí)需要輸入mars-server.key的密碼。用瀏覽器訪問
https://localhost/
這時(shí)應(yīng)當(dāng)看到一個(gè)彈出對(duì)話框,讓你確認(rèn)是否信任該站點(diǎn)的證書,選擇信任后,便可以查看該站點(diǎn)的內(nèi)容了。
由于大多數(shù)Apache服務(wù)器都是在服務(wù)器啟動(dòng)時(shí)自動(dòng)啟動(dòng),為了避免在啟動(dòng)Apache時(shí)輸入密碼,可以用以下命令生成不加密的mars-server.key文件:
opensslrsa-inmars-server.key-outmars-server.key.insecure
用新生成的mars-server.key.insecure代替原有的key文件即可。
[聲明]本網(wǎng)轉(zhuǎn)載網(wǎng)絡(luò)媒體稿件是為了傳播更多的信息,此類稿件不代表本網(wǎng)觀點(diǎn),本網(wǎng)不承擔(dān)此類稿件侵權(quán)行為的連帶責(zé)任。故此,如果您發(fā)現(xiàn)本網(wǎng)站的內(nèi)容侵犯了您的版權(quán),請(qǐng)您的相關(guān)內(nèi)容發(fā)至此郵箱【779898168@qq.com】,我們?cè)诖_認(rèn)后,會(huì)立即刪除,保證您的版權(quán)。
官網(wǎng)優(yōu)化
整站優(yōu)化
渠道代理
400-655-5776