构建过程
这里使用 LAMP 构建服务器,所以第一步就是搭建好环境,默认以及成功
修改配置文件,是服务器即 apache 支持 https 访问
apache 的配置
简单讲就是两步:
开启 SSL 功能,在配置文件中去掉 ; 开启
在 vhost 中添加服务器端证书的路径,实例如下:
<VirtualHost *:8087>
DocumentRoot "*****"
ServerName *****
SSLEngine on
SSLCertificateFile "c:/bin/apache/Apache2.4.4/conf/ssl/server.crt"
SSLCertificateKeyFile "c:/bin/apache/Apache2.4.4/conf/ssl/server.key"
<Directory "*****">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<FilesMatch ".(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
</VirtualHost>
为服务器产生证书以及私钥
进入命令行生成服务器的私钥,在当前目录下生成了一个server.key生成签署申请 * 生成签署申请,此时生成签署文件server.csr.
openssl genrsa -out server.key 1024
openssl req -new -out server.csr -key server.key -config ../conf/openssl.cnf
为客户端产生证书以及私钥
生成CA私钥,生成ca.key文件
利用CA的私钥产生CA的自签署证书,此时需要输入一些信息,注意Common Name为服务器域名,如果在本机,为本机IP
CA为网站服务器签署证书
openssl genrsa -out ca.key 1024
openssl req -new -x509 -days 365 -key ca.key -out ca.crt -config ../conf/openssl.cnf
openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config ../conf/openssl.cnf
Error
解决方案如下:
// 于是在在当前目录创建demoCA,里面创建以下文件,index.txt,serial:serial内容为01,其他为空以及文件夹 newcert.
[root@test1 tls]# cd ../CA/
[root@test1 CA]# ls
certs crl newcerts private
// 需要有这几个目录,如果没有可以自己新建
[root@test1 CA]# touch index.txt
[root@test1 CA]# echo "00"> serial
[root@test1 CA]# ls
// 再执行一遍,即可生成server.crt文件
复制文件并重启
然后将 server.crt,server.key复制到apache的conf文件夹下,重启apache
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。