写在最前面,本文部分内容摘录自: 秋水逸冰【LAMP下SSL设置教程】 (一位牛人的博客,一位文青/或者大叔,写了各种一键脚本,他的博客给了我很多帮助,表示感谢)
服务器配置环境:LAMP(centos7.1 + apcahe2.4)
1、使用 OpenSSL 生成证书请求CSR文件 安装OpenSSL: yum install -y openssl openssl-devel 执行命令: openssl req -new -nodes -newkey rsa:2048 -sha256 -keyout server.pem -out server.csr
中间按提示填写以下内容 Country Name (2 letter code) [XX]:CN // 国家代码 State or Province Name (full name) []:XXXX // 省 Locality Name (eg, city) [Default City]:XXXX // 市 Organization Name (eg, company) [Default Company Ltd]:Teddysun // 组织或公司名(随便填) Organizational Unit Name (eg, section) []: // 部门,可不填 Common Name (eg, your name or your server's hostname) []:XXX.com // *则是通配符域名,一般证书发行会自带 www 子域名 Email Address []:admin@XXX.com // 邮箱地址(一定要有个域名邮箱,用以验证域名所有权)
2、申请证书:很多方法。。。 一开始用的Let's Encrypt Client自动配置脚本certbot 执行命令 certbot --apache certonly 【确保之前域名已经解析到主机ip】 得到四个pem文件 cert.pem chain.pem fullchain.pem privkey.pem 路径:/etc/letsencrypt/live/xxx.com cert.pem --- 服务器证书文件(PEM编码的X.509证书) chain.pem --- 服务器的CA证书链 fullchain.pem --- 服务器证书文件(合并证书链) privkey.pem --- 证书私匙文件 下面用的一般是后两个文件
3、打开/usr/local/apache/conf/httpd.conf,找到下面一行 Include conf/extra/httpd-ssl.conf 将前面的 # 注释去掉,保存 ps:检查这一行如果有注释,也去掉,不然后面执行service restart httpd重启apapche时报错“ 'shmcb' session cache not supported ” LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
4、修改配置文件 /usr/local/apache/conf/extra/httpd-ssl.conf,一般是 DocumentRoot /data/www/default/ #改为对应的网站根目录 SSLEngine on #SSL引擎开关,必须开 SSLCipherSuite EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5:!RC4 #是加密套件,这里去除了一些不再安全的一些方式 SSLCertificateFile fullchain.pem #是证书文件,指定具体路径 SSLCertificateKeyFile privkey.pem #是证书的私钥文件,指定具体路径 SSLProtocol All -SSLv2 -SSLv3 #指定ssl连接方式,这里去掉SSLv2和SSLv3,这两种已不安全 #路径DocumentRoot与一致 Options -Indexes +FollowSymLinks AllowOverride All #添加这两行 Require all granted
很多不明白的,出错多次,纠结了很久,网上另外找了不少文档 ps:配置项可以参考配置手册 apache2.2版的(中文的,跟2.4版的没大区别,能参照)
5、保存配置文件,确认防火墙允许443端口,执行service restart httpd,重启apcahe,报错的话检查错误提示,上面有提
6、 Chrome 浏览器访问https网址,如果小绿锁没出现打叉,别着急,检查上述步骤有没漏错,或者出现白色的小锁,可能网站主页里含http开头的内部链接(是内部链接吧?),chrome按F12打开控制台security选项卡可以看到有关不安全资源,网站文件代码模式将内容修改成https就行了
bingo!夜里神游...边写边回顾,两点了,明天上班怎么办啊...
追加:格式没调,好丑,改天在来一大碗markdown...
Views: 273