寫在前面
使用最新版OpenSSL的原因已在前文Ubuntu 18.04下安裝最新版OpenSSL 1.1.1a中說明杆兵。最終采用通過PHP來使用OpenSSL的原因是PHP開啟OpenSSL較為方便艾船,且滿足項目需求。安裝Apache服務(wù)器和PHP環(huán)境本來并不是困難的事情垮庐,所以本文還順帶介紹了PHP如何開啟最新版的OpenSSL功能,并附帶注意事項坞琴。
安裝流程
首先安裝Apache
sudo apt-get install apache2
安裝完成之后哨查,在瀏覽器中輸入地址localhost或訪問服務(wù)器的IP地址,即可查看服務(wù)器初始頁面剧辐,上面顯示“It works”寒亥,即表示Apache服務(wù)器正常工作。
接下來安裝PHP
sudo apt-get install php7.0
如果是Ubuntu 18.04版本荧关,雖然輸入的是php7.0溉奕,但最終安裝的是php7.2。在Ubuntu 16.04上執(zhí)行此命令忍啤,安裝的是php7.0加勤。對于OpenSSL的使用,這兩個版本的選擇應(yīng)該是無傷大雅同波。
查看PHP版本的命令為
php -v
為了將安裝好的Apache服務(wù)器與PHP環(huán)境關(guān)聯(lián)起來鳄梅,需要再安裝一個PHP插件,插件的版本需要跟隨PHP的版本而定未檩∥乐Γ可以首先查詢需要安裝的插件的版本:
apt-cache search libapache2-mod-php
如果是PHP7.2,則會輸出libapache2-mod-php7.2
讹挎。如果是PHP7.0校赤,則會輸出libapache2-mod-php7.0
吆玖。
根據(jù)具體情況進(jìn)行安裝,這里安裝的是PHP7.2马篮。
sudo apt-get install libapache2-mod-php7.2
至此Apache和PHP環(huán)境就安裝完成沾乘。可以在/var/www/html
目錄下新建index.php
文件浑测,測試安裝好的環(huán)境:
<?php
// index.php
phpinfo();
?>
保存退出后翅阵,瀏覽器訪問localhost/index.php,即可查看已安裝好的PHP環(huán)境信息詳情頁面迁央。詳情頁面中有關(guān)于OpenSSL版本的信息掷匠,如果此前安裝好了OpenSSL 1.1.1a,那么頁面上的OpenSSL Library Version將會是OpenSSL 1.1.1a岖圈。如果未安裝最新版OpenSSL讹语,在Ubuntu 18.04下,版本為OpenSSL 1.1.0蜂科。在Ubuntu 16.04下顽决,版本為OpenSSL 1.0.1。
注意事項
目前對PHP環(huán)境下的OpenSSL 1.1.1a測試經(jīng)驗(yàn)并不豐富导匣,只有一個需要特別提出的注意事項才菠。
當(dāng)在PHP代碼中使用執(zhí)行系統(tǒng)命令行的函數(shù)時:
<?php
exec("$command");
?>
如果執(zhí)行的是OpenSSL相關(guān)的命令行,如使用SM4算法進(jìn)行對稱加密:
openssl sm4 -e -in inputfile -out outputfile -k passphrase
其中inputfile
是加密的輸入文件的文件名贡定,outputfile
是加密后輸出文件的文件名赋访,passphrase
是密碼短語。
在PHP的exec()
函數(shù)中執(zhí)行此命令缓待,需要首先授予服務(wù)器根目錄權(quán)限
sudo chmod -R 777 /var/www/html
/var/www/html
是Apache服務(wù)器的根目錄蚓耽。授予了文件讀寫的權(quán)限后,才能正常執(zhí)行相關(guān)命令命斧。
最后
如對項目感興趣,可參考Github-GMencryption嘱兼。