美文网首页
windows 的配置apache IIS

windows 的配置apache IIS

作者: 红了白 | 来源:发表于2019-03-01 17:04 被阅读0次

    1.涉及修改配置

    通过https反向代理映射到http地址,可实现以https的方式,访问普通的http网站。

    主要涉及到以下三个配置文件的修改:

    这三个在apache的减压包里都有conf文件下面

    httpd.conf

    httpd-ssl.conf

    httpd-vhosts.conf

    2.具体实现步骤:

    1.修改conf/httpd.conf

    取消ssl及proxy相关注释

    #LoadModule ssl_module modules/mod_ssl.so(去掉前面的#号)

    #Include conf/extra/httpd-ssl.conf(去掉前面的#号)

    #LoadModule proxy_module modules/mod_proxy.so(去掉前面的#号)

    #LoadModule proxy_http_module modules/mod_proxy_http.so(去掉前面的#号)

    2.生成证书

    cmd进入命令行,进入apache安装目录的bin目录。也可在apache bin目录下 shift+鼠标右键 点击open command window here进去命令行。

    2.1设置OPENSSL_CONFIG配置

    执行命令:set OPENSSL_CONF=..\conf\openssl.cnf(openssl.cnf所在文件夹的全路径)

    注意:

    [if !supportLists]1. [endif]使用时最好用管理员权限进去命令行。

    管理员权限进入命令行

    2.2生成服务端的key文件

    执行命令:openssl genrsa -out server.key 1024

    完成后,检查bin目录下生成server.key文件

    2.3生成签署申请

    执行命令:openssl req -new -out server.csr -key server.key

    完成后,会在bin目录下生成server.csr文件,其中 Common Name <eg,YOUR name>[] 需要与配置文件httpd-ssl.conf中的ServerName一致,否则apache启动时将会报错。

    2.4生成CA的key文件

    执行命令:openssl genrsa -out ca.key 1024

    完成后,会在目录bin下生成ca.key文件

    2.5生成CA自签署证书

    执行命令:openssl req -new -x509 -days 365 -key ca.key -out ca.crt

    完成后,会在目录bin下生成ca.crt文件,此处填写的信息与2.3步中类似。

    2.6生成CA的服务器签署证书

    执行命令:openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key

    此处如果没有创建好相关目录,将会报如下错误:

    根据提示,手动创建相关目录:

    在bin下新建demoCA文件夹

    bin/demoCA

    在demoCA下新建index.txt

    bin/demoCA/index.txt

    在demoCA下新建serial.txt,其内容为01,重命名删除.txt后缀

    bin/demoCA/serial

    在demoCA下新建newcert文件夹

    bin/demoCA/newcerts

    完成后,会在bin目录下生成server.crt文件。demoCA目录的最终结构如下:

    3.修改conf/extra/httpd-ssl.conf文件

    3.1修改https端口号

    根据需要修改httpd-ssl.conf的默认端口号"443",可以改成所需要的端口号,同时修改ServerName。

    具体如下:

    Listen 443

    <VirtualHost _default_:443>

    ServerName localhost

    注意:此处如果保持https默认的443端口,则访问的时候,无需再加端口号。

    3.2修改相关证书路径

    在apache安装目录的conf目录下,新建一个key目录,名称随意,然后将bin目录中的相关证书复制到key目录中。key目录最终 的文件结构如下:

    接着修改conf/extra/httpd-ssl.conf文件中的如下内容:

    SSLCertificateFile "xxx/conf/key/server.crt"

    SSLCertificateKeyFile "xxx/conf/key/server.key"

    SSLCACertificateFile "xxx/conf/key/ca.crt"

    #SSLVerifyClient require(去掉前面的#号,进行客户端验证时需要)

    #SSLVerifyDepth 1(去掉前面的#号,把10改为1,进行客户端验证时需要)

    [if !supportLists]4. [endif]重启apache

    Bin目录下,执行命令行,重启apache

    httpd.exe -k restart

    在浏览器中,输入https://localhost:443(页面url会自动变成 https://localhost),如果页面出现提示It works!则说明https配置成功了。

    5.项目部署方式

    修改conf/extra/httpd-vhosts.conf,新增内容如下:

    NameVirtualHost *:443

    注意:

    httpd-vhosts.conf配置文件中原有的NameVirtualHost *:80不要修改,下面新增一行即可。

    NameVirtualHost *:443

    5.1以https的方式部署项目

    在conf/extra/httpd-vhosts.conf配置文件中,新增如下内容:

    <VirtualHost *:443>

    ServerName localhost

    DocumentRoot D:/javapro/bms

    SSLEngine on

    SSLProxyEngine on

    SSLCertificateFile "D:/myplatform/Apache2.2/conf/key/server.crt"

    SSLCertificateKeyFile "D:/myplatform/Apache2.2/conf/key/server.key"

    <Directory "/">

    Options None

    AllowOverride All

    Order allow,deny

    Allow From All

    </Directory>

    </VirtualHost>

    上面的配置含义是,在浏览器中输入https://localhost:443,即可访问DocumentRoot对应目录下的项目。

    6.其他错误处理:

    1.Check that the request matches the signature

    Signature ok

    The stateOrProvinceName field needed to be the same in the CA certificate (AU) and the request (CN)

    将openssl.cnf文件中的

    < countryName = match

    < stateOrProvinceName = match

    < organizationName = match

    ---改为即可

    > countryName = supplied

    > stateOrProvinceName = supplied

    > organizationName = supplied

    2.unable to write random state

    用管理员权限访问

    相关文章

      网友评论

          本文标题:windows 的配置apache IIS

          本文链接:https://www.haomeiwen.com/subject/hpjduqtx.html