• apache双向HTTPS SSL认证配置


    注意:

    如果报找不到 OPENSSL.CNF文件的错误,可以到网上下一个,然后用 -config openssl.cnf来指定这个配置文件的位置,或放到报错时提示的指定位置

    1.生成根证书的KEY, 1024的意思是RSA加密位数,必须为2的N次方,一般用1024即可。

    openssl genrsa -out ca.key 1024

    2.用刚刚生成的根证书的KEY来生成CSR(证书签发请求),这一步会要求填写请求的相关信息。

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

    其中要注意的输入项有两个,一个Common Name(证书机构名),另一个challenge password(记住即可)

    3.再用刚才的CSR和KEY来生成我们的根证书, days参数用来指定证书的有效天数。

    openssl x509 -req -days 3650 -in ca.csr -signkey ca.key -out ca.crt

    以同样的办法生成服务器证书

    1.先生成KEY

    openssl genrsa -out server.key 1024

    2.然后用KEY生成CSR,这一步输入信息里的Common Name必须填网站的域名

    openssl req -new -key server.key -out server.csr

    3.生成服务器证书

    openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt

    签发一个客户端证书,把最后生成的,后缀为P12文件给客户端安装。

    1.先生成客户端的KEY

    openssl genrsa -out client.key 1024

    2.用KEY来生成CSR,但是这一步输入信息里的Common Name不能填上面的网站域名,因为这个是客户端的证书,如果填的和服务器证书的一样,会导致验证失败。

    openssl req -new -key client.key -out client.csr

    3.用最开始生成的根证书来签署生成这个客户端的证书。

    openssl x509 –req –days 3650 –CA ca.crt –Cakey ca.key –Cacreateserial –in client.csr –out client.crt

    4.制作客户端安装证书,这一步会要求输入一个Export Password,就是客户端安装证书时要求输入的安装密码

    openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12

    下面开始APACHE的配置。

    第一步就是在Apache的配置文件里把SSL模块加载进来

    LoadModule ssl_module modules/mod_ssl.so

    再把SSL的配置文件也加载进来,如果没有这个配置文件的话,可以去下一个

    Include conf/extra/httpd-ssl.conf

    然后修改httpd-ssl.conf文件,找到如下的键值修改成对应你自己系统的路径。

    DocumentRoot "E:VertrigoServwww"

    #localhost改成网站的域名

    ServerName localhost:443

    ErrorLog "E:/VertrigoServ/Apache/logs/error.log"

    TransferLog "E:/VertrigoServ/Apache/logs/access.log"

    SSLEngine on

    #下面的文件就是我们刚才用OPENSSL生成的,注意修改成自己的路径

    SSLCertificateFile "E:/VertrigoServ/Apache/conf/server.crt"

    SSLCertificateKeyFile "E:/VertrigoServ/Apache/conf/server.key"

    SSLCACertificateFile "E:/VertrigoServ/Apache/conf/ca.crt"

    完成后重启APACHE

  • 相关阅读:
    Java的jmap命令使用详解
    Linux常用文件管理命令详解
    Java的jps命令使用详解
    快速整明白Redis中的整数集合到底是个啥
    Java的jinfo命令使用详解
    Java的jstack命令使用详解
    快速整明白Redis中的字典到底是个啥
    Java的jstat命令使用详解
    Linux常用系统管理命令详解
    详解ElasticAPM实现微服务的链路追踪(NET)
  • 原文地址:https://www.cnblogs.com/tuwenmin/p/3169930.html
Copyright © 2020-2023  润新知