下面的證書是通過mac終端命令行生成的寂拆。參考文件:http://www.reibang.com/p/f312a84a944c
第一步奢米,為服務(wù)器端和客戶端準(zhǔn)備公鑰抓韩、私鑰
// 生成服務(wù)器端私鑰
命令:openssl genrsa -out server.key 1024
// 生成服務(wù)器端公鑰
命令:openssl rsa -in server.key -pubout -out server.pem
第二步,生成 CA 證書
// 生成 CA 私鑰
命令:openssl genrsa -out ca.key 1024
命令:openssl req -new -key ca.key -out ca.csr
命令:openssl x509 -req -in ca.csr -signkey ca.key -out ca.crt
在第二步第二條時(shí)會(huì)出來一個(gè)填寫資料的界面(我已經(jīng)填好大家可以參考鬓长,有些地方可以空著)
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:Guangdong
Locality Name (eg, city) []:FoShan
Organization Name (eg, company) [Internet Widgits Pty Ltd]:TestCA
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:localhost
Email Address []:
這里有點(diǎn)要注意谒拴, Common Name (e.g. server FQDN or YOUR name) []: 這一項(xiàng),是最后可以訪問的域名涉波,我這里為了方便測(cè)試英上,寫成 localhost ,如果是為了給網(wǎng)站生成證書啤覆,需要寫成 xxxx.com 苍日。
第三步,生成服務(wù)器端證書
// 服務(wù)器端需要向 CA 機(jī)構(gòu)申請(qǐng)簽名證書城侧,在申請(qǐng)簽名證書之前依然是創(chuàng)建自己的 CSR 文件
命令:openssl req -new -key server.key -out server.csr
// 向自己的 CA 機(jī)構(gòu)申請(qǐng)證書易遣,簽名過程需要 CA 的證書和私鑰參與,最終頒發(fā)一個(gè)帶有 CA 簽名的證書
命令:openssl x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr -out server.crt
同樣會(huì)有信息填寫嫌佑,照舊寫就好了
第四步豆茫,生成cer文件
//使用openssl 進(jìn)行轉(zhuǎn)換
命令:openssl x509 -in server.crt -out server.cer -outform der
如果完成,就會(huì)得到這么9個(gè)文件
當(dāng)證書生成后屋摇,現(xiàn)在需要對(duì)apache做一下相關(guān)的配置了揩魂。我用的mac測(cè)試。用的是mac自帶的apache炮温。參考文件:http://www.reibang.com/p/d006a34a343f
. Apache
1.Apache的啟動(dòng)火脉、停止。
打開終端柒啤,輸入httpd -v可以看到apache的版本信息倦挂。
命令 :httpd -v
輸出: Server version: Apache/2.4.16 (Unix)
Server built: Aug 22 2015 16:51:57
2.啟動(dòng) Apache
在終端輸入 sudo apachectl start 即可啟動(dòng) Apache。(終端不會(huì)有成功提示)
在瀏覽器輸入:localhost
說明Apache啟動(dòng)成功了担巩。
3.停止方援、重啟Apache
停止 Apache:sudo apachectl stop
重啟 Apache:sudo apachectl restart
到此,Apache的使用已經(jīng)足夠涛癌。
下面是配置Apache犯戏,開啟SSL
1.編輯/etc/apache2/httpd.conf文件∪埃可以通過終端命令:/etc/apache2打開文件夾先匪。然后編輯httpd.conf。這里要注意一下:這些文件(包括下面)是不允許編輯的弃衍,系統(tǒng)會(huì)提示你復(fù)制一份副本呀非,你可以在副本編輯,然后替換掉原來那份即可镜盯。(最好把原來那份也備份一下)
編輯httpd.conf姜钳,把下面三行前面的#號(hào)去掉
這里(/etc/apache2/httpd.conf和/private/etc/apache2/httpd.conf其實(shí)是同一個(gè)內(nèi)容)
LoadModule ssl_module libexec/apache2/mod_ssl.so
Include /etc/apache2/extra/httpd-ssl.conf
Include /etc/apache2/extra/httpd-vhosts.conf
2.編輯/etc/apache2/extra/httpd-ssl.conf文件坦冠,去掉下面兩行前面的#號(hào)
SSLCertificateFile "/etc/apache2/server.crt" // 這里的路徑不一定相同,server.crt就是前面生成的簽名證書
SSLCertificateKeyFile "/etc/apache2/server.key" // 這里的路徑不一定相同哥桥,server.key就是前面生成的簽名證書
3.編輯/etc/apache2/extra/httpd-vhosts.conf文件辙浑,在VirtualHost*:80后面添加一段如下內(nèi)容:
<VirtualHost *:443>
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /etc/apache2/server.crt
SSLCertificateKeyFile /etc/apache2/server.key
ServerName 192.168.2.1
DocumentRoot "/Library/WebServer/Documents"
</VirtualHost>
ps:Apache的安裝目錄也有可能不一樣。
配置SSL
1.編輯 /etc/apache2/extra/httpd-ssl.conf 文件
httpd-ssl.conf 中已經(jīng)有一條 <VirtualHost> 記錄拟糕,我們將其注釋掉判呕,新建一條:
<VirtualHost *:443>
General setup for the virtual host
DocumentRoot "/Library/WebServer/Documents"
ServerName local.server.com
SSL Engine Switch:
SSLEngine on
Server Certificate:
SSLCertificateFile "/etc/apache2/server.crt"
Server Private Key:
SSLCertificateKeyFile "/etc/apache2/server.key"
SSL Engine Options:
<FilesMatch ".(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory "/Library/WebServer/CGI-Executables">
SSLOptions +StdEnvVars
</Directory>
</VirtualHost>
2.為了能夠使用 URL 訪問服務(wù)器,我們需要配置HOST送滞,終端執(zhí)行open /etc/hosts侠草,添加
127.0.0.1 server // 這里的 server就是你自簽名的服務(wù)器的證書
然后
檢查配置文件并重啟 Apache,命令行輸入sudo apachectl -t犁嗅,如果提示:
AH00526: Syntax error on line 92 of /private/etc/apache2/extra/httpd-ssl.conf: SSLSessionCache: 'shmcb' session cache not supported (known names: ). Maybe you need to load the appropriate socache module (mod_socache_shmcb?).
可以根據(jù)提示:編輯 /etc/apache2/httpd.conf 文件边涕,刪除下列這些代碼前的注釋符號(hào) #
LoadModule socache_shmcb_module libexec/apache2/mod_socache_shmcb.so
再次測(cè)試,顯示 Syntax OK,說明測(cè)試通過褂微,如果有warning警告也無傷大雅功蜓。重啟 Apache:sudo apachectl restart
現(xiàn)在,可以通過https 訪問了宠蚂。https://localhost. 也可以通過:https://127.0.0.1訪問