设为首页 收藏本站
查看: 976|回复: 0

[经验分享] apache之https

[复制链接]

尚未签到

发表于 2018-11-20 09:22:46 | 显示全部楼层 |阅读模式
  Apache之https
  ■ 安装openssl
  

  ___________________________________________________________
http://www.openssl.org/source/   #下载openssl
[root@Web_server src]# tar xf openssl-1.0.1s.tar.gz
[root@Web_server src]# cd openssl-1.0.1s
[root@Web_server openssl-1.0.1s]# ./config
[root@Web_server openssl-1.0.1s]# make && make install
------------------------------------源码安装方式
[root@Web_server src]# wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.2.31.tar.gz
[root@Web_server src]# tar xvf httpd-2.2.31.tar.gz
[root@Web_server src]#cd httpd-2.2.31
[root@Web_server httpd-2.2.31]#./configure --prefix=/usr/local/apache2 --with-included-apr --enable-so --enable-deflate=shared --enable-expires=shared --enable-rewrite=shared --with-pcre --enable-ssl=shared --with-ssl=/usr/local/ssl     #此处选择动态模式,--enable-ssl=static --with-ssl=/usr/local/ssl选择静态
------------------------------------添加扩展模块方式
[root@Web_server openssl-1.0.1s]# cd /usr/local/src/httpd-2.2.31/modules/ssl   #务必进入httpd源码目录
[root@Web_server ssl]# /usr/local/apache2/bin/apxs  -i -c -a -D HAVE_OPENSSL=1 -I /usr/lib/openssl/engines/lib -lcrypto -lssl -ldl *.c     #  错误一、error "Unrecognized SSL Toolkit!、declaration for parameter 'XXXXXX' but no such parameter
  解决:添加-D HAVE_OPENSSL=1
  错误二、undefined symbol: ssl_cmd_SSLMutex
  解决:apxs编译追加模块成功,但是apache启动失败。出现这个错误后,我把运行apxs时指定mod_ssl.c改成*.c 。和添加mod_deflate不一样,ssl中包含多个源代码文件
  错误三、undefined symbol: X509_INFO_free
  解决:由于静态连接了 openssl的库造成的(默认),解决办法是添加-lcrypto -lssl -ldl参数
  ■ 创建私钥
  

  ___________________________________________________________
[root@Web_server modules]# cd /usr/local/ssl/bin/         
[root@Web_server bin]# openssl genrsa -out server.key 2048
[root@Web_server bin]# cp server.key  /usr/local/apache2/conf/ssl.key  
  ■ 生成证书请求(CSR)文件
  

  ___________________________________________________________
[root@Web_server bin]# openssl req -new -key server.key -out certreq.csr
Country Name (2 letter code) [XX]:cn                 #所在国家的ISO标准代号,中国为CN
State or Province Name (full name) []:zj            #单位所在地省/自治区/直辖市
Locality Name (eg, city) [Default City]:zs            #单位所在地的市/县/区
Organization Name (eg, company) [Default Company Ltd]:dx      #单位/机构/企业合法的名称
Organizational Unit Name (eg, section) []:zwy                #部门名称
Common Name (eg, your name or your server's hostname) []:zwy    #此项必须与访问提供SSL服务的服务器时所应用的域名完全匹配   
Email Address []:       #邮件地址,不必输入,直接回车跳过
"extra"attributes                        #以下信息不必输入,回车跳过直到命令执行完毕  
  ■ 备份私钥并提交证书请求
  

  ___________________________________________________________
  

  

  请将证书请求文件certreq.csr提交给CA服务商(如天威诚信),并备份保存证书私钥文件server.key,等待证书的签发。服务器证书密钥对必须配对使用,私钥文件丢失将导致证书不可用
  

  
  ■  获取服务器证书中级CA证书  
  

  ___________________________________________________________  
  

  

  

  为保障服务器证书在客户端的兼容性,服务器证书需要安装两张中级CA证书(不同品牌证书,可能只有一张中级证书)。
  从邮件中获取中级CA证书:
  将证书签发邮件中的从BEGIN到 END结束的两张中级CA证书内容(包括“-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”)粘贴到同一个记事本等文本编辑器中,中间用回车换行分隔。修改文件扩展名,保存为conf/ssl.crt/intermediatebundle.crt文件(如果只有一张中级证书,则只需要保存并安装一张中级证书)。
  
  
  
  
  ■ 获取EV服务器证书
  

  
  ___________________________________________________________  
  

  

  

  将证书签发邮件中的从BEGIN到 END结束的服务器证书内容(包括“-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”) 粘贴到记事本等文本编辑器中,保存为ssl.crt/server.crt文件
  
  
  
  
  ■ Apache配置
  

  
  ___________________________________________________________  
  

  

[root@Web_server ~]# vim /usr/local/apache2/conf/httpd.conf
Listen  443
[root@Web_server ~]#  vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
NameVirtualHost *:443

    DocumentRoot "/data/web/www"
    ServerName aaa.com:443
    ErrorLog "logs/error.log"
    CustomLog "logs/access.log" combined
     
        SSLEngine on
        SSLCertificateFile /usr/local/apache/conf/ssl.crt/server.crt
        SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/server.key
        SSLCertificateChainFile /usr/local/apache/conf/ssl.crt/intermediatebundle.crt
   
  
  :curl: (35) error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
  解决:把443的VirtualHost 放到80的VirtualHost 前面;80 部分 NameVirtualHost *443部分NameVirtualHost *:443
  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-637213-1-1.html 上篇帖子: apache配置中的Timeout和KeepAliveTimeout的解释 下篇帖子: apache访问日志分析的命令语句
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表