ssl证书是个很让人纠结的东西,专业证书要么贵要么不给力,自己制作一个吧目前网上又没有特别给力靠谱的教程,今天在公司纠结了一下,搞定了。
首先要感谢这篇文章的作者,本文主要是参考这篇文章。
闲话休题,咱们言归正传。
首先找个linux,装个openssl(网上很多靠谱的教程,详细步骤略过)。
然后便开始一堆命令
openssl genrsa -des3 -out ssl.key 2048
这一步需要输入一个密码,随便输一个就行了,后面貌似只需要用一次。。
mv ssl.key xxx.key
openssl rsa -in xxx.key -out ssl.key
rm xxx.key
上面第二步的时候需要输入前面那个密码
openssl req -new -key ssl.key -out ssl.csr
这一步需要填写很多信息,重点是Common Name,就是你需要使用这个证书的域名,貌似可以使用通配符。最后的challenge password不填
openssl x509 -req -days 3650 -in ssl.csr -signkey ssl.key -out ssl.crt
然后
cat ssl.key ssl.crt > ssl.pem
到此为止我们得到了四个文件
ssl.csr ssl.crt ssl.key ssl.pem
下面开始纠结服务器配置吧!
nginx:
在server里面写一段:
ssl on;
ssl_certificate ssl.pem;
ssl_certificate_key ssl.key;
lighttpd:
ssl.engine = "enable"
ssl.pemfile= "ssl.pem"
ssl.ca-file="ssl.pem"
apache:
SSLEngine on
SSLCertificateFile "ssl.crt"
SSLCertificateKeyFile "ssl.key"
这样服务器端就配置好了,但是假证书毕竟是假证书,客户端还需要安装才能不被警告。客户端安装方法很简单,用IE或chrome打开,并无视警告,然后查看服务器证书信息,把证书导出到文件,再双击证书文件安装到受信任的根证书颁发机构,然后就一劳永逸了。