在Apahce2.2中,配置SSL的注意事项

检查

  • 在配置SSL之前需检查Apache是否是SSL版本。检查的方法:查看Apache安装目录的bin目录下是否含有openssl.exe(该程序用于生成SSL密钥和证书),modules目录下是否含有mod_ssl.so
    如果没有则说明该Apache不是SSL版本,需要重新安装Apache-SSL版本。(最主要的是mod_ssl.so,如果没有openssl.exe可以直接安装OpenSSL软件)

概念(参考自此文章

  • TLS:传输层安全协议 Transport Layer Security的缩写
  • SSL:安全套接字层 Secure Socket Layer的缩写
  • KEY:通常指私钥。
  • CSR:Certificate Signing Request的缩写,即证书签名请求,这不是证书,可以简单理解成公钥,生成证书时要把这个提交给权威的证书颁发机构。
  • CRT(或CER):certificate的缩写,即证书。其中,CER是CRT证书的微软型式,通常而言,.cer文件是二进制数据,而.crt文件包含的是ASCII数据。cer文件包含依据DER(Distinguished Encoding Rules)规则编码的证书数据,这是x.690标准中指定的编码格式。X.509是一个最基本的公钥格式标准,里面规定了证书需要包含的各种信息。通常我们提到的证书,都是这个格式的,里面包含了公钥、发布者的数字签名、有效期等内容。要强调的是,crt(或crt)文件只里面是不包含私钥的
  • PFX:pfx数字证书既包含有公钥又包含私钥。
  • X.509 是一种证书格式.对X.509证书来说,认证者总是CA或由CA指定的人,一份X.509证书是一些标准字段的集合,这些字段包含有关用户或设备及其相应公钥的信息。X.509的证书文件,一般以.crt结尾,根据该文件的内容编码格式,可以分为以下二种格式:
    • PEM - Privacy Enhanced Mail,打开看文本格式,以"-----BEGIN…"开头, "-----END…"结尾,内容是BASE64编码.Apache和* NIX服务器偏向于使用这种编码格式.
    • DER - Distinguished Encoding Rules,打开看是二进制格式,不可读.Java和Windows服务器偏向于使用这种编码格式

证书生成

  • 安装完成后以管理员打开命令提示符并进入bin目录,下表为生成证书请求所需的执行命令。注意,如果仅仅到“生成crt证书”(第三步)是不够的,此时进入Internet选项会发现系统可以导入证书但是在证书框内没有显示,这是因为crt证书没有整合私钥,所以需要将crt和key文件合并为一个文件pfx。
命令解释
1openssl genrsa -out server.key 2048目的:申请私钥,获得.key
2048指密钥空间长度为2048位。
2openssl req -new -key server.key -out server.csr目的:获得公钥.csr
1.openssl:使用openssl.exe
2.req -new:请求request一个私钥和公钥
3.-key server.key:私钥的输出位置及文件名
4.-out server.csr:公钥的输出位置及文件名
5.执行成功后提示要输入相关信息。
填写说明详见此文第六步
3openssl req -x509 -days 365 -key server.key -in server.csr > server.crt目的:生成CA证书并由此为自己颁发CRT证书
1.openssl:使用openssl.exe
2.req -x509:请求request一个x509格式的证书
(X.509格式的证书,一般以.crt结尾)
3.-days 365:设置证书有效期为一年
4.-key server.key:私钥的位置及文件名
5.-in server.csr:公钥的位置及文件名
6.> server.crt:证书输出位置及文件名
4openssl pkcs12 -export -out server.pfx -inkey server.key -in server.crt目的:私钥和公钥合并为pfx证书(便于导入证书)
此处需要设置一个密码<也就是口令>
用于从pfx文件中导出私钥时的验证,这个密码就是对私钥再次加密,这样就保证了私钥的安全,别人即使拿到了你的证书备份(pfx),不知道加密私钥的密码,也是无法导入证书的。其中原因是:RSA的私匙是很长的一个数字,用户不可能将它记住,PGP的办法是让用户为随机生成的RSA私匙指定一个口令(passphase),只有通过给出口令才能将私匙释放出来使用。

证书安装

  • 打开Apache安装目录下conf目录中的httpd.conf文件,将以下两项去掉注释后保存退出。
    # LoadModule ssl_module modules/mod_ssl.so
    # Include conf/extra/httpd-ssl.conf
  • 打开Apache安装目录下conf/extra目录中的httpd_ssl.conf文件,找到SSLCertificateFileSSLCertificateKeyFile这两个配置项,证书(.crt)和私钥(.key)文件。注意不需要配置公钥文件。

配置虚拟主机目录:

  • SSL模式下,虚拟主机需要在httpd-ssl.conf中配置
    • 若配置的主机是基于域名的,需记得加上NameVirtualHost。
    • SSLMutex "file:C:/Program Files/Apache Software Foundation/Apache2.2/logs/ssl_mutex"换成SSLMutex default
    • DocumentRoot换成网页所在位置
    • ServerName www.example.com:443改成自己的主机域名,如:ServerName www.A-ExampleDance.com:443
    • 添加<Directory>项及其内容
    • 注释掉ErrorLogTransferLog
    • 注释掉<FilesMatch "\.(cgi|shtml|phtml|php)$">和其后紧跟的“原装”<Directory>
  • 保存退出并重启Apache。

其它注意事项

  • 访问时需要在地址栏添加上https://协议标识,否则会走hosts文件的DNS这条路,直接跳到http的localhost:80去。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值