Linux申请免费证书+Apace配置+http重定向到https

Linux申请免费证书+Apace配置+http重定向到https


一、环境:

宿主机: Centos

站环境:Apache(LAMPP)

证书方:Let’s Encrypt


二、获取Let’s Encrypt 免费SSL证书
#1、下载 letsencrypt-auto 脚本,使用它能够很方便地完成域名验证和SSL证书的获取。
$ git clone https://github.com/letsencrypt/letsencrypt

#2、进入到脚本所在目录  
$ cd letsencrypt

#3、 获取证书  
$ ./letsencrypt-auto certonly --standalone --email ×××××××@qq.com -d www.×××××××.top -d www.×××××××.com

# 执行上述命令需注意:
	(1) 执行此命令必须使用 root用户获得文件夹的权限;
	(2) 域名能访问并且有绑定的公网IP;
	(3) 必须在此域名绑定的服务器上运行;
	(4) 会使用80断端口,如果apache/nginx监听80端口,把apche/nginx先关掉.
经过两次确认操作,会出现如下结果,代表成功!

img

证书申请成功会在 /etc/letsencrypt/live/你的域名/下出现四个文件

cert.pem 证书文件

privkey.pem 密钥文件

chain.pem 密钥链

fullchain.pem 不用

至此:获取证书完成!FUCK!


三、配置Apache

打开apache安装目录下的 httpd_ssl.conf 配置以下内容
# 添加 SSL 协议支持协议,去掉不安全的协议
SSLProtocol all -SSLv2 -SSLv3
# 修改加密套件如下
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
SSLHonorCipherOrder on
# 证书公钥配置
SSLCertificateFile /etc/letsencrypt/live/你的域名/cert.pem
# 证书私钥配置
SSLCertificateKeyFile /etc/letsencrypt/live/你的域名/privkey.pem
# 证书链配置,如果该属性开头有 '#'字符,请删除掉
SSLCertificateChainFile /etc/letsencrypt/live/你的域名/chain.pem
打开apache安装目录下的 httpd_vhost.conf 配置以下内容
<VirtualHost *:443>
    ServerAdmin your.com      
    ServerName your.com                    
    DocumentRoot  /data/www/hbappserver/public          
    SSLEngine on
    # 添加 SSL 协议支持协议,去掉不安全的协议
    SSLProtocol all -SSLv2 -SSLv3
    # 修改加密套件如下
    SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
    SSLHonorCipherOrder on
    # 证书公钥配置
    SSLCertificateFile /etc/letsencrypt/live/你的域名/cert.pem
    # 证书私钥配置
    SSLCertificateKeyFile /etc/letsencrypt/live/你的域名/privkey.pem
    # 证书链配置,如果该属性开头有 '#'字符,请删除掉
    SSLCertificateChainFile /etc/letsencrypt/live/你的域名/chain.pem
</VirtualHost>
四、重启 restart

​ 至此:可以通过 https://域名/访问你的网页了。。。。


五、HTTP 自动跳转 HTTPS 的安全配置(可选)

首先: 将httpd.conf 里的 #LoadModule rewrite_module modules/mod_rewrite.so去掉注释

方法一:在网站根目录下面/htdocs下创建 .htaccess文件,
#将网站下所有的	http://域名  -->  https://域名

RewriteEngine on          
RewriteBase /             
RewriteCond %{SERVER_PORT} !^443$    
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
#将网站特定的域名  http://域名  --> https://域名
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} ^www.××××.com [NC]
RewriteRule ^(.*)$ https://www.××××.com [R,L]
</IfModule>
方法二、修改httpd.conf 或者 httpd_vhost.conf
<Directory />
	Options FollowSymLinks
	AllowOverride All
	RewriteEngine on
	RewriteCond %{SERVER_PORT} !^443$
	RewriteRule ^(.*)?$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
</Directory>

六、利用apache代理wss(扩展)

准备工作:

1、GatewayWorker 监听 8282 端口(websocket协议)

2、已经申请了ssl证书, 放在了/server/httpd/cert/ 下

3、利用apache转发443端口至指定端口8282

4、httpd-ssl.conf 已加载

5、openssl 已安装

启用 proxy_wstunnel_module 模块

#将httpd.conf 中下面两个模块取消注释
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
#代理wss模块
SSLProxyEngine on
ProxyRequests OffIPIP
ProxyPass /wss ws://IP:2346
ProxyPassReverse /wss ws://IP:2346

腾讯云 SSL

https://cloud.tencent.com/document/product/400/35243

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值