zoukankan      html  css  js  c++  java
  • 实现HTTPS--Apache+Openssl

    https,全称 hypertext transfer protocol secure,安全的超文本传输协议
    广泛应用于万维网上安全敏感的通讯

    实验步骤:

    1.开启apache的ssl模块
    #取消以下两行的注释
    LoadModule ssl_module modules/mod_ssl.so
    Include etc/extra/httpd-ssl.conf
    
    2.CA证书申请(实验环境)
    #创建存放密钥和证书文件的目录
    mkdir /usr/local/apache2/cert && cd /usr/local/apache2/cert
    

    (1)生成服务器私钥,RSA密钥

    openssl genrsa -out ca.key 1024
    

    (2)生成csr证书文件,依次输入国家、地区、城市、组织、组织单位、名字或域名、email等

    openssl req -new -key ca.key -out ccku.csr
    

    (3)设置证书文件*.crt的有效期等信息

    openssl x509 -req -days 365 -sha256 -in ccku.csr -signkey ca.key -out ccku.crt
    
    3.修改配置文件

    (1)修改 httpd-ssl.conf文件,调用证书

    #vim /usr/local/apache2/etc/extra/httpd-ssl.conf 
    #注释掉不安全的协议
    #添加:
    SSLProtocol all -SSLv2 -SSLv3
    #修改加密套件
    SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
    SSLHonorCipherOrder on
    SSLCertificateFile cert/ccku.crt
    SSLCertificateKeyFile cert/ca.key
    

    (2)修改apache的主配置文件,添加虚拟主机

    <VirtualHost _default_:443>
            DocumentRoot "/usr/local/apache2/htdocs"
            ServerName localhost:443
            SSLCertificateFile cert/ccku.crt
            SSLCertificateKeyFile cert/ca.key
            SSLCertificateChainFile cert/ccku.crt
    </VirtualHost>
    
    4.验证

    (1)检查配置文件语法

    apachectl -t
    

    #报错提示:

    AH00526: Syntax error on line 83 of /usr/local/apache2/etc/extra/httpd-ssl.conf:
    SSLSessionCache: 'shmcb' session cache not supported (known names: ). Maybe you need to load the appropriate socache module (mod_socache_shmcb?).
    
    #解决办法:修改主配置文件调用该模块
    LoadModule socache_shmcb_module modules/mod_socache_shmcb.so #取消注释
    
    重新检查语法验证
    #apachectl -t
    Syntax OK
    

    (2)重启apache,使用https测试

    apachectl restart
    
    5.强制跳转https
    #vim /usr/local/apache2/etc/httpd.conf
    #在<Directory "/usr/local/apache2/htdocs">标签下添加:
    
        RewriteEngine on
        RewriteCond %{SERVER_PORT} !^443$
        RewriteRule ^(.*)?$ https//%{SERVER_PORT}/$1 [R=301,L]
    

    6.关闭https的方法:

    1.ssl配置文件调用
    2.虚拟主机
    3.跳转

    作者:ccku
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。如有问题或建议,请多多赐教,非常感谢。
  • 相关阅读:
    关于_OPENMP预编译
    Java FlameGraph 火焰图
    java的-cp和-Djava.library.path
    maven依赖包和依赖仓库(2)
    opencv读取图像输入到tensorflow模型中进行运算【cpp】
    NiftyNet 项目了解
    windows编译tensorflow c++库
    关于Tensorflow 的数据读取环节
    Itunes connect上传应用视频 app preview时遇到“无法载入文件”的问题
    Unity 扩展编辑器
  • 原文地址:https://www.cnblogs.com/ccku/p/13515909.html
Copyright © 2011-2022 走看看