zoukankan      html  css  js  c++  java
  • 在Apache服务器上安装SSL证书

    前提是你先买好证书,下载下来,证书压缩包打开共有3个文件

    • 证书文件:以.crt为后缀或文件类型。
    • 证书链文件:以.crt为后缀或文件类型。
    • 密钥文件:以.key为后缀或文件类型。

    Apache安装目录中新建cert目录,并将解压的Apache证书、 证书链文件和密钥文件拷贝到cert目录中。

    如果需要安装多个证书,需在Apache目录中新建对应数量的cert目录,用于存放不同的证书 。

     如果申请证书时选择了手动创建CSR文件,请将手动生成创建的密钥文件拷贝到cert目录中并命名为domain name.key。

     

    在Apache安装目录下,打开Apache/conf/httpd.conf文件,并找到以下参数,按照下文中注释内容进行配置

    #LoadModule ssl_module modules/mod_ssl.so  #删除行首的配置语句注释符号“#”加载mod_ssl.so模块启用SSL服务,Apache默认是不启用该模块的。如果找不到该配置,请重新编译mod_ssl模块。
    #Include conf/extra/httpd-ssl.conf  #删除行首的配置语句注释符号“#”。  

    httpd.conf文件并退出

    打开Apache/conf/extra/httpd-ssl.conf文件并找到以下参数,按照下文中注释内容进行配置。

    证书路径建议使用绝对路径。

    根据操作系统的不同,http-ssl.conf文件也可能存放在conf.d/ssl.conf目录中。

    <VirtualHost *:443>     
        ServerName   #修改为申请证书时绑定的域名www.YourDomainName1.com。                    
        DocumentRoot  "D:/phpStudy/WWW/yg"         
        SSLEngine on   
        SSLProtocol all -SSLv2 -SSLv3 # 添加SSL协议支持协议,去掉不安全的协议。
        SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM   # 修改加密套件。
        SSLHonorCipherOrder on
        SSLCertificateFile "D:/phpStudy/Apache/cert/2335105__yg1st.com_public.crt"   # 将domain name1_public.crt替换成您证书文件名。
        SSLCertificateKeyFile "D:/phpStudy/Apache/cert/2335105__yg1st.com.key"   # 将domain name1.key替换成您证书的密钥文件名。
        SSLCertificateChainFile "D:/phpStudy/Apache/cert/2335105__yg1st.com_chain.crt"  # 将domain name1_chain.crt替换成您证书的密钥文件名;证书链开头如果有#字符,请删除。
    </VirtualHost>
    
    #如果证书包含多个域名,复制以上参数,并将ServerName替换成第二个域名。 
    <VirtualHost *:443>     
        ServerName   #修改为申请证书时绑定的第二个域名www.YourDomainName2.com。                    
        DocumentRoot  "D:/phpStudy/WWW/yg"        
        SSLEngine on   
        SSLProtocol all -SSLv2 -SSLv3 # 添加SSL协议支持协议,去掉不安全的协议。
        SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM   # 修改加密套件。
        SSLHonorCipherOrder on
        SSLCertificateFile "D:/phpStudy/Apache/cert/2335105__yg1st.com_public.crt"   # 将domain name2替换成您申请证书时的第二个域名。
        SSLCertificateKeyFile "D:/phpStudy/Apache/cert/2335105__yg1st.com.key"   # 将domain name2替换成您申请证书时的第二个域名。
        SSLCertificateChainFile "D:/phpStudy/Apache/cert/2335105__yg1st.com_chain.crt"  # 将domain name2替换成您申请证书时的第二个域名;证书链开头如果有#字符,请删除。
    </VirtualHost>

    改完之后,注意这文件里有一些关于logs文件的,路径一定要改对,根据实际路径来

    比如我的就是:

    ErrorLog "D:phpStudyApachelogserror.log"
    TransferLog "D:phpStudyApachelogsaccess.log"

    改完之后打开cmd

    进入你的apache安装目录的bin目录下

    使用:httpd -t

    测试,如果有报错就根据提示信息修改;没有报错则重启apache即可

    网站成功安装证书,可以用https打开

    这样做完的结果是,用https可以打开,但是http开头的还是打不开

    还需要设置让http开头的网站自动跳转到https开头

    在httpd.conf的<Directory>标签内,键入以下内容

    RewriteEngine on
    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [L,R=301]

    当然我的不完全是这样,因为我有设置别的伪静态规则,因此做了一些调整

    证书安装完成之后,发现在谷歌浏览器里左上角有个提示,点开显示网站连接并非完全安全

    原因是我们的页面存在一些不安全的http请求,比如图片、js等静态文件。

    我们只需要将其升级为https请求即可。

    页面的head中加入:

    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">

    意思是自动将http的不安全请求升级为https
    添加之后,谷歌浏览器显示“链接是安全的”

  • 相关阅读:
    小数的编程
    小数的编程
    硬币趣味题
    硬币趣味题
    好玩的 emoji
    ThreadPoolExecutor使用介绍
    希尔排序
    OpenCms创建站点过程图解——献给OpenCms的刚開始学习的人们
    Linux C 编程内存泄露检測工具(二):memwatch
    C++封装、继承、多态
  • 原文地址:https://www.cnblogs.com/chenyingying0/p/12454540.html
Copyright © 2011-2022 走看看