zoukankan      html  css  js  c++  java
  • apache中开启SSL设置方法

    开通443端口通信

    如果是服务器部署在云端,记得开启443端口通信许可

    生产ssl证书

    第一种:免费申请网站:https://freessl.cn/

    第二种:openssl(phpstudy 自带)

    1,设置openssl环境变量

    使用DOS命令进入Apache bin目录,因为该目录才有libeay32.dllopenssl.exessleay32.dll等文件。

    使用DOS命令在bin目录下执行命令:set OPENSSL_CONF=..confopenssl.cnf,通过此命令设置openssl的环境变量,如果不执行此命令,后面的操作会报错。

    set OPENSSL_CONF=..confopenssl.cnf

    2,生成服务器的私钥

    注释:这是使用128位的RSA算法生成的密钥,还可以使用其他的算法生成密钥,相关的用法可以使用搜索引擎搜索。4096是密钥的长度,这个值最好使用4096以上的值,必须是2的整数次方。

    openssl genrsa 4096 > server.key

    3,生成未签署的server.csr

    openssl req -new -key server.key > server.csr
    
    Country Name (2 letter code) [AU]:CN   ISO国家代码(只支持两位字符)
    State or Province Name (full name) [Some-State]:Hu Bei  所在省份
    Locality Name (eg, city) []:Wu Han    所在城市
    Organization Name (eg, company) [Internet Widgits Pty Ltd]:Mark Company  公司名称
    Organizational Unit Name (eg, section) []:IT   组织名称
    Common Name (e.g. server FQDN or YOUR name) []:www.phpmarker.com 申请证书的域名
    Email Address []:phpmarker@163.com     管理员邮箱
    Please enter the following ‘extra’ attributes
    to be sent with your certificate request
    A challenge password []:        交换密钥 可空
    An optional company name []:    可空

    可能会报错:无法定位序数xxx于动态链接库libeay32.dll,解决办法:将apache的bin目录下的libeay32.dll文件复制到c:windowssystem32下。

    4,签署服务器证书文件server.crt

    这个命令使用第三步和第四步生成的密钥和证书来生成证书server.crt,-days参数表示证书有效期,单位为天,x509表示生成的是X.509证书。

    openssl req -x509 -days 365 -key server.key -in server.csr > server.crt

    5,查看证书详细信息

    openssl x509 -noout -text -in server.crt

    部署SSL

    1,确认apache是否有ssl模块

    配置Apache服务器支持https协议和SSL证书,最基本的要求是Apache包含openssl模块。还好apache/bin目录下有libeay32.dllopenssl.exessleay32.dll,自带了ssl模块,若没有该模块,需自行下载单独的openssl。

    2,打开apache的配置文件conf/httpd.conf,去掉ssl模块前面的#

    LoadModule ssl_module modules/mod_ssl.so
    ...
    Include conf/extra/httpd-ssl.conf

    3,备份修改httpd-ssl.conf

    Listen 443
    SSLPassPhraseDialog  builtin
    <VirtualHost _default_:443> DocumentRoot "C:Program Filesapi" ServerName api.test.com ServerAlias api.test.com ErrorLog "C:Program Filesapilogswebsslapi-error.log" TransferLog "C:Program Filesapilogswebsslapi-access.log" <Directory "C:Program Filesapi"> Options FollowSymLinks ExecCGI AllowOverride All Order allow,deny Allow from all Require all granted </Directory> SSLEngine on SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL SSLCertificateFile "C:phpstudyApacheconfsslapi.test.com.crt" SSLCertificateKeyFile "C:phpstudyApacheconfsslapi.test.com.key" SSLCertificateChainFile "C:phpstudyApacheconfsslapi.test.com_ca_bundle.crt" SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire BrowserMatch ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0 CustomLog "C:Program Filesapilogsssl_request.log" "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x "%r" %b" </VirtualHost>

    4,测试配置

    C:phpstudyApachein>httpd.exe -t
    Syntax OK

    5,动态加载新配置

    C:phpstudyApachein>httpd.exe -k restart -n apache2a

    6,打开浏览器测试

    httpd-ssl.conf
  • 相关阅读:
    Grovvy初识
    在eclipse中安装插件
    解决 APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tas
    Axis2 webservice入门--Webservice的发布与调用
    一步一步教你自定义博客园(cnblog)界面
    Enum枚举
    并行与并发
    多线程join(加入)
    守护线程
    停止线程
  • 原文地址:https://www.cnblogs.com/lixiaobin/p/apachessl.html
Copyright © 2011-2022 走看看