CentOS 7 上 安装使用 WoSign CA SSL 证书的请教

作者 cnhap, 2016-08-14, 19:59:04

« 上一篇主题 - 下一篇主题 »

cnhap

2.修改apache下httpd-ssl文件。
(1)打开apache安装目录下conf/extra目录中的httpd-ssl.conf文件,在配置文件中查找以下配置语句:
    a).SSLCertificateFile /usr/local/apache/ssl/public.cer

      (将服务器证书公钥(2_domainname.com.crt)配置到该路径下,同时替换public.crt);

     b).SSLCertificateKeyFile /usr/local/apache/ssl/private.key

      (将服务器证书私钥(3_domainname.com.key)配置到该路径下,同时替换private.key);

     c).#SSLCertificateChainFile /usr/local/apache/ssl/ca.cer

      (删除行首的"#"号注释符,并将中级CA证书(1_root_bundle.crt)配置到该路径下). 

     d)把以下代码加入任意位置,指定ssl加密协议

       SSLProtocol  all -SSLv2 -SSLv3

        SSLCipherSuite AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL



以上是官方指导的教程、
引用apache安装目录下conf/extra目录中的httpd-ssl.conf文件
可我的主机里 就没有这个文件,难道 CentOS 7  改变了路径了?博主 帮我下 要如何找到这个文件所在的位置。

lonelicloud

谢谢你的理解!

你这里提到的问题 1)里面提到的内容应该是默认在 /etc/httpd/conf.d/ssl.conf 里面,它这个教程应该用的不是默认的配置,或者说不是 CentOS 7 的默认配置。

这里配置的是默认的主机 SSL 配置。也许你还需要根据配置的主机单独给该主机另行添加类似的配置,也就是我的教程<https://cnzhx.net/blog/implement-letsencrypt-ca-on-centos-7/>里面写的"调整虚拟主机配置文件"一节里面介绍的内容。
欢迎光临水景一页

问题解决后请「修改」原始帖子将其前缀改为「已解决」。

请阅读"论坛管理"里面的置顶内容,帮助维护论坛正常运行,方便你我他!

cnhap

http://blog.csdn.net/sunboy_2050/article/details/50433363
我找到了这篇博文 里面说的和我的配置一样,那么 虚拟机的配置要如何修改呢?
我修改成下面 这样的 http 访问是 Testing 123..
https  无法显示此页!

#
#
# 主机 1
# cnhap.org
#
<VirtualHost *:443>
    SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/2_cnhap.org.crt
SSLCertificateKeyFile /etc/pki/tls/private/3_cnhap.org.key
ServerAdmin admin@cnhap.net
ServerName cnhap.org
ServerAlias www
# 非常感谢 cheers 的提醒,虽然测试显示无影响,但 Apache 文档如此要求
# 注意下面这行末尾不要带 /
DocumentRoot /srv/www/cnhap.org/html

   <Directory "/srv/www/cnhap.org/html/">
    Options FollowSymLinks
    # 下一行这样设置就可以在网站文件的目录中使用 .htaccess
    AllowOverride All
    # 下一行是替代 Allow from all 的新机制
    Require all granted
</Directory>

ErrorLog /srv/www/cnhap.org/logs/error.log
CustomLog /srv/www/cnhap.org/logs/access.log combined
ServerSignature Off
</VirtualHost>


#
# 主机 3
# 为了以后给访问 phpMyAdmin 的时候用,也可以是别的端口,如 4444
Listen 2082
#
# phpMyAdmin,访问地址:http://192.168.1.2:2082/phpMyAdmin
#
<VirtualHost *:2082>
ServerAdmin admin@cnhap.org
DocumentRoot /srv/www/phpmyadmin/html
<Directory "/srv/www/phpmyadmin/html/">
    Options FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

ErrorLog /srv/www/phpmyadmin/logs/error.log
CustomLog /srv/www/phpmyadmin/logs/access.log combined
ServerSignature Off
</VirtualHost>

lonelicloud

#3
1)首先给你篇参考文章,是我自己写的,<https://cnzhx.net/blog/ssl-on-lamp-on-vps/>。这篇文章里面使用的是自己签发的证书。你只需要把其中自签发证书那一部分忽略,而把其中的证书文件部分,

SSLCertificateFile /etc/httpd/ssl/cnzhx.net.crt
SSLCertificateKeyFile /etc/httpd/ssl/cnzhx.net.key


替换成自己从 CA 那里下载过来的证书就可以了(其实就是自己指定文件位置和文件名)。

2)然后再说说虚拟主机配置文件的问题。第一,对于服务器来说,80 端口对应 http 而 443 端口对应 https。如果现阶段 80 端口的访问已经正常了,那么新增加一个针对 443 端口的配置就可以让服务器同时支持使用非加密和加密访问。

假设你的 80 端口的访问已经正常了。而配置文件就是你上面给出来的文件,在服务器上的路径假设为(文件名是我乱写的,你可以根据需要修改;而路径需要看你的服务器 HTTPD 的配置),
/etc/httpd/conf/vhost_cnhap.conf

复制此文件并另存为,
/etc/httpd/conf/vhost_cnhap_ssl.conf

然后修改为下面的内容即可(蓝色字体是我修改的部分,IP 使用 <your-ip> 代替了;另请仔细看看中文注释;因为代码模式没法改颜色,所以使用普通文本模式了):

<IfModule mod_ssl.c>
    # If you add NameVirtualHost *:443 here, you will also have to change
    # the VirtualHost statement in /etc/apache2/sites-available/default-ssl
    # to <VirtualHost *:443>
    # Server Name Indication for SSL named virtual hosts is currently not
    # supported by MSIE on Windows XP.
    NameVirtualHost <your-ip>:443
    # ipv6 地址需要用方括号 [ ] 括起来
    # NameVirtualHost [<your-ipv6-ip>]:443

#
# 主机 1
# cnhap.org
#
<VirtualHost <改成你的 IP>:443>
SSLEngine On
     SSLProtocol all -SSLv3
     Header add Strict-Transport-Security "max-age=31536000″
     SSLHonorCipherOrder On
     SSLCompression off
     SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA

# 下面这两行后半部分换成你自己的证书文件和密钥
SSLCertificateFile /etc/httpd/ssl/cnzhx.net.crt
SSLCertificateKeyFile /etc/httpd/ssl/cnzhx.net.key



ServerAdmin admin@cnhap.org
ServerName cnhap.org
ServerAlias www
# 非常感谢 cheers 的提醒,虽然测试显示无影响,但 Apache 文档如此要求
# 注意下面这行末尾不要带 /
DocumentRoot /srv/www/cnhap.org/html

<Directory "/srv/www/cnhap.org/html/">
    Options FollowSymLinks
    # 下一行这样设置就可以在网站文件的目录中使用 .htaccess
    AllowOverride All
    # 下一行是替代 Allow from all 的新机制
    Require all granted
</Directory>

ErrorLog /srv/www/cnhap.org/logs/error-ssl.log
CustomLog /srv/www/cnhap.org/logs/access-ssl.log combined
ServerSignature Off
</VirtualHost>
</IfModule>



完成后运行,

# apachectl configtest

看看是否有配置错误,如果没有错误就可以重启 Apache 服务来试试看你的加密配置是否正常(使用 https 访问)。
欢迎光临水景一页

问题解决后请「修改」原始帖子将其前缀改为「已解决」。

请阅读"论坛管理"里面的置顶内容,帮助维护论坛正常运行,方便你我他!

cnhap

我用的是 花生壳 服务器放我家里。没有固定的IP
IP哪里需要如何操作呢,是不是可以用*号代替?
还有 我改了配置文件后 HTTPS 无法打开,
http://192.168.1.2:2098/phpMyAdmin/
可以打开,
http://192.168.1.2  访问是 Testing 123..

windows 主机我还懂点,linux 主机  一点都不懂。

cnhap

我的虚拟主机的配置路径是:
/etc/httpd/conf.d/vhost.conf
你的意思是 上面的文件 针对80端口设置
在创建一个下面的文件处理443端口
/etc/httpd/conf.d/vhost_ssl.conf
不知道我理解对了没有。

lonelicloud

1) 使用 * 代替 IP 也许可以;之前试过但是忘记结果了,好像跟 SNI 有关。

另,建议你先把非加密访问的配置正常之后再来配置 https 连接的。

2)是的,两个配置文件,分别对应加密和非加密访问。

所以你的 phpmyadmin 的访问,如果改成 https 访问的话,也需要有自己对应的 SSL 的配置。也就是说, http 和 https 是使用不同的配置(且配置里使用不同的端口,默认 http 为 80, https 为 443)。

P.S. 我刚才修改了一点点上面给你的那个配置文件。
欢迎光临水景一页

问题解决后请「修改」原始帖子将其前缀改为「已解决」。

请阅读"论坛管理"里面的置顶内容,帮助维护论坛正常运行,方便你我他!

cnhap

[root@cnhap ~]# apachectl configtest
AH00548: NameVirtualHost has no effect and will be removed in the next release /etc/httpd/conf.d/vhost_ssl.conf:7
Syntax OK
[root@cnhap ~]#


现在设置了 2个配置文件,http 可以正常访问   hhtps 还是无法显示页面

第7行是这个     NameVirtualHost *:443


改成     NameVirtualHost 192.168.1.2:443   也是一样的错误 我是英盲 不知道 猜对没有

cnhap

<IfModule mod_ssl.c>
    # If you add NameVirtualHost *:443 here, you will also have to change
    # the VirtualHost statement in /etc/apache2/sites-available/default-ssl
    # to <VirtualHost *:443>
    # Server Name Indication for SSL named virtual hosts is currently not
    # supported by MSIE on Windows XP.
    NameVirtualHost *:443
    # ipv6 地址需要用方括号 [ ] 括起来
    # NameVirtualHost [<your-ipv6-ip>]:443
#
# 主机 1
# cnhap.org
#
<VirtualHost *:443>
SSLEngine On
     SSLProtocol all -SSLv3
     Header add Strict-Transport-Security "max-age=31536000″
     SSLHonorCipherOrder On
     SSLCompression off
     SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA

# 下面这两行后半部分换成你自己的证书文件和密钥
# SSLCertificateFile /etc/pki/tls/certs/2_cnhap.org.crt
# SSLCertificateKeyFile /etc/pki/tls/private/3_cnhap.org.key
SSLCertificateFile /etc/httpd/ssl/2_cnhap.org.crt
    SSLCertificateKeyFile /etc/httpd/ssl/3_cnhap.org.key




ServerAdmin admin@cnhap.org
ServerName cnhap.org
ServerAlias www
# 非常感谢 cheers 的提醒,虽然测试显示无影响,但 Apache 文档如此要求
# 注意下面这行末尾不要带 /
DocumentRoot /srv/www/cnhap.org/html

<Directory "/srv/www/cnhap.org/html/">
    Options FollowSymLinks
    # 下一行这样设置就可以在网站文件的目录中使用 .htaccess
    AllowOverride All
    # 下一行是替代 Allow from all 的新机制
    Require all granted
</Directory>

ErrorLog /srv/www/cnhap.org/logs/error-ssl.log
CustomLog /srv/www/cnhap.org/logs/access-ssl.log combined
ServerSignature Off
</VirtualHost>
</IfModule>


lonelicloud

看你的配置检查已经提示没有错误了。

是否是因为你的 443 端口没开?关闭防火墙试试看,

# systemctl stop firewalld

如果是因为这个,再根据这里的这一节 https://cnzhx.net/blog/centos-rhel-install-lamp-phpmyadmin/#apache 的后半部分设置一下防火墙。
欢迎光临水景一页

问题解决后请「修改」原始帖子将其前缀改为「已解决」。

请阅读"论坛管理"里面的置顶内容,帮助维护论坛正常运行,方便你我他!