centos7 php开发环境安装--配置SSL(Apache为例)
1.检查是否安装OpenSSL
1.1 查看是否安装
openssl version
1.2 编译安装:
https://www.cnblogs.com/rxbook/p/9367725.html
1.3 yum安装
yum install openssl yum install openssl-devel
1.4 在线升级
yum -y update openssl
2.配置证书上传目录
在Apache安装目录中新建cert目录,并将下载的Apache证书、 证书链文件和秘钥文件拷贝到cert目录中。如果需要安装多个证书,需在Apache的cert目录中新建对应数量的cert目录,用于存放不同的证书(每个域名证书对应一个文件夹存放)
如果申请证书时选择了手动创建CSR文件,请将手动生成创建的秘钥文件拷贝到cert目录中并命名为domain name.key。
3. 修改httpd.conf配置文件
3.1 httpd.conf配置参数 mod_ssl.so
#LoadModule ssl_module modules/mod_ssl.so
删除行首的配置语句注释符号“#”加载mod_ssl.so模块启用SSL服务,Apache默认是不启用该模块的。如果找不到该配置,请重新编译mod_ssl模块。
3.2 引入httpd-ssl.conf
#Include conf/extra/httpd-ssl.conf #删除行首的配置语句注释符号“#”。
4.修改httpd-ssl.conf配置文件
4.1 打开httpd-ssl.conf文件 注释掉默认示例参数
4.2 具体配置参数
<VirtualHost *:443> ServerName www.xx.com。 DocumentRoot /data/www/xxx/public SSLEngine on SSLProtocol all -SSLv2 -SSLv3 SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM SSLHonorCipherOrder on SSLCertificateFile cert/domain name1_public.crt SSLCertificateKeyFile cert/domain name1.key SSLCertificateChainFile cert/domain name1_chain.crt </VirtualHost>
4.3 根据情况可设置多个,保存 httpd-ssl.conf 文件并退出。
5.配置httpd-vhosts.conf中站点
80与443端口同时存在
<VirtualHost *:443> ServerAdmin -host2.example.com DocumentRoot "/home/www/demo/public/" ServerName m.ygang.vip ServerAlias localhost SSLEngine on SSLCertificateFile "/usr/local/apache/cert/3087344_m.ygang.vip_public.crt" SSLCertificateKeyFile "/usr/local/apache/cert/3087344_m.ygang.vip.key" SSLCertificateChainFile "/usr/local/apache/cert/3087344_m.ygang.vip_chain.crt" ErrorLog "/usr/local/apache/logs/error_log" CustomLog "/usr/local/apache/logs/access_log" common </VirtualHost>
6.设置Apache http自动跳转https
在 httpd-vhosts.conf 文件中的<VirtualHost *:80> </VirtualHost>中间,添加以下重定向代码。
RewriteEngine on RewriteCond %{HTTPS} !=on RewriteRule ^(.*) https://%{SERVER_NAME}$1 [L,R]
7. Nginx 配置ssl证书
server { listen 443; server_name localhost; # localhost修改为您证书绑定的域名。 ssl on; #设置为on启用SSL功能。 root html; index index.html index.htm; ssl_certificate cert/domain name.pem; #将domain name.pem替换成您证书的文件名。 ssl_certificate_key cert/domain name.key; #将domain name.key替换成您证书的密钥文件名。 ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #使用此加密套件。 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用该协议进行配置。 ssl_prefer_server_ciphers on; location / { root html; #站点目录。 index index.html index.htm; } }
设置HTTP请求自动跳转HTTPS 在80端口站点添加
server { listen 80; server_name localhost; rewrite ^(.*)$ https://$host$1 permanent; location / { index index.html index.htm; } }