一 服务器配置
1,放置证书
cd /etc/ssl/
sudo mkdir cacerts
在cacerts目录下放入这三个文件
root.crt chain.crt key.crt
2,开启https站点
cd /etc/apache2/sites-enabled/
sudo ln -s ../sites-available/default-ssl.conf ./
3,加载对应的apache2模块
cd /etc/apache2/mods-enabled/
sudo ln -s ../mods-available/ssl.conf ./
sudo ln -s ../mods-available/ssl.load ./
sudo ln -s ../mods-available/socache_shmcb.load ./
4,修改ssl配置文件
sudo vim /etc/apache2/sites-enabled/default-ssl.conf
做如下修改:
SSLCertificateFile /etc/ssl/whiteskycn/chain.crt
SSLCertificateKeyFile /etc/ssl/whiteskycn/key.crt
SSLCACertificateFile /etc/ssl/whiteskycn/root.crt
SSLVerifyClient require
SSLVerifyDepth 10
#SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
5,重启apache2服务
sudo service apache2 restart
根据提示输入Server证书密码
二 client端配置
1,postman中配置client端证书:
setting—General 关闭SSL certificate verification选项
setting—Certiticates 做如下配置
Client Certificates
Add Certificate
Host
YOUR IP
Remove
CRT file
/home/lei/client_chain.crt
Key file
/home/lei/client.key
Passphrase
YOUR PWD
三, 使用
1,做完上述配置,client即可用https://xxx来访问api服务
2,服务端在处理请求的函数中,用 $_SERVER[‘SSL_CLIENT_S_DN_CN’] 获得client的MAC地址