Apache启用https

现在越来越多的网站转到https了,https比http安全是肯定的。以前用arp在局域网里攻击其他电脑,使所有的网络信息由自己电脑转发,然后自己电脑上安装抓包工具。这样就能得到所信息,包含用户名密码。所以网站用https很有必要。现在用apache搭了一个svn,为了保护源码不被捕获,所以决定使用https。

使用openssl生成证书

环境:Ubuntu 16.04.1
1.生成2048位私钥
openssl genrsa -des3 -out svn.key 2048
删除私钥密码
openssl rsa -in svn.key -out svn.key
这样接下来的操作就不需要输入密码了
2.建立服务器密钥请求文件
openssl req -new -key svn.key -out svn.csr
3.生成ca的crt
openssl req -new -x509 -key svn.key -out ca.crt -days 36500

2016-08-12 10-52-43屏幕截图
4.生成crt
openssl x509 -req -days 36500 -in svn.csr -CA ca.crt -CAkey svn.key -CAcreateserial -out svn.crt
5.证书合并
cat svn.key svn.crt > svn.pem
常用方法:
生成pfx证书
openssl pkcs12 -export -in svn.crt -inkey svn.pem -out svn.p12
转成cer证书
openssl x509 -in svn.crt -inform PEM -out svn.cer -outform DER
在某些环境下可能无法生成证书,类似于如下图的错误:
2016-08-12 13-27-03屏幕截图
打开/etc/ssl/openssl.conf,搜索testCA,会发现默认openssl会从访配置文件找CA证书。在redhat系和debian系linux路径不同。
redhat系是/etc/pki/CA目录,可参考该文:解决方法 Error opening CA private key ../../CA/private/cakey.pem
debian系是/etc/ssl/demoCA目录,可参考该文:openssl生成https证书

注意,文中用成demoCA下的serial文件使用
echo 01>demoCA/serial
如果按文中生成不成功,找不到01的证书,可以试试
echo 00>demoCA/derial

配置HTTPS

我的服务器是CentOS 7,apache使用yum源安装,关于ssl的配置就不说了,是里是我svn中配置的内容:

SSLEngine on
SSLCipherSuite RC4-SHA:AES128-SHA:HIGH:MEDIUM:!aNULL:!MD5
SSLCertificateFile /data/keys/svn/svn.crt
SSLCertificateKeyFile /data/keys/svn/svn.key

已发布

分类

,

来自

标签:

评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注