zoukankan      html  css  js  c++  java
  • oneinstack如何安装ssl证书和配置Let's Encrypt免费SSL证书教程汇总(转)

    OneinStack包含以下组合:
    lnmp(Linux + Nginx+ MySQL+ PHP)

    LNMP安装SSL安全证书 部署HTTPS:https://www.gworg.com/ssl/309.html
    lamp(Linux + Apache+ MySQL+ PHP)

    APACHE安装SSL证书:https://www.gworg.com/ssl/106.html
    Apache自动跳转到 HTTPS:https://www.gworg.com/ssl/130.html
    lnmpa(Linux + Nginx+ MySQL+ PHP+ Apache):Nginx处理静态,Apache(mod_php)处理动态PHP

    Nginx安装SSL证书:https://www.gworg.com/ssl/107.html
    Nginx 自动跳转到HTTPS:https://www.gworg.com/ssl/167.html
    lnmt(Linux + Nginx+ MySQL+ Tomcat):Nginx处理静态,Tomcat(JDK)处理JAVA
    lnmh(Linux + Nginx+ MySQL+ HHVM)



    LNMP安装SSL安全证书 部署HTTPS

     

    第一步、部署HTTPS基础工作准备
    选用正规的SSL域名证书

    第二步、上传和部署SSL证书

    A - 把上面的一个CRT一个KEY文件上传到VPS ROOT目录中,然后对应修改成SSL.CRT和SSL.KEY文件名,或者我们用作其他命令都可以。

    B - 解密私钥和设置权限

    openssl rsa -in ssl.key -out /root/ssl.key
    chmod 600 /root/ssl.key

    登录SSH,执行上述两行脚本,解密私钥和授权。

    第三步、在LNMP环境部署站点SSL设置

    我们需要在已有的LNMP添加了站点,然后在站点对应的CONF文件设置。

    在"/usr/local/nginx/conf/vhost/"目录文件中,找到对应站点的conf文件,然后修改设置如下

    server
    {
    listen 80;
     listen 443 ssl;
    #listen [::]:80;
    ssl on;
            ssl_certificate /root/ssl.crt;
            ssl_certificate_key /root/ssl.key;
    server_name gworg.com www.gworg.com;

    上面的红色标注部分是我添加的,对应路径我们要与之前上传的CRT和KEY文件路径对应以及文件名不要搞错。

    最后,我们重启LNMP,可以看到SSL证书生效,且HTTPS可以访问站点。


    APACHE安装SSL证书

     
     

    SSL从购买到安装分为一下步骤:

    1. 提交CSR  & 使用自动生成CSR

    2. 验证域名所有权

    3. 签发证书

    4. 下载服务器证书

    在我们网站购买的客户,下载Apache格式的证书

    解压后应包含三个文件:

    yourdomain.com.crt     (服务器证书)
    yourdomain.com.key   (私钥文件)如果为空请将生成CSR时保存的私钥内容粘贴在文件中
    yourdomain.com.ca-bundle  (根证书链)

    下面介绍如何安装Apache. 首要条件就是 apache 已经安装了 mod_ssl.so 模块 。

    检测方法使用以下命令:

    httpd -M | grep mod_ssl

    如果有显示 mod_ssl.so 表示已经安装了apache模块。

    CentOS/Redhat安装mod_ssl.so

    yum install mod_ssl

    Debian/Ubuntu

    sudo a2enmod ssl
    sudo service apache2 restart

    Apache SSL配置

    Listen 443  (如果配置已经存在就不要加)
    LoadModule ssl_module modules/mod_ssl.so (如果配置已经存在就不要加)
    NameVirtualHost *:443 (非必须,配置多个SSL站点会需要)
    <VirtualHost *:443>
    ServerName www.gworg.cn
    ServerAlias gworg.cn
    DocumentRoot /var/www/html
    SSLEngine on
    SSLProtocol all -SSLv2 -SSLv3
    SSLCertificateFile /etc/ssl/server.crt 
    SSLCertificateKeyFile /etc/ssl/server.key 
    SSLCertificateChainFile /etc/ssl/server.ca-bundle
    </VirtualHost>

    以上只是SSL配置范例,尽量不要直接应用于生产环境,请根据80端口的站点配置修改。
    证书可以放在其他位置,没有强制要求
    ServerName 和 ServerAlias 需要修改

    配置完成重启Apache使其生效.

    service httpd restart

    使用https://yourdomain.com 测试是否可以访问。

    问题排查:

    如果使用CDN(加速器),需要在CDN上面安装证书,国内免费加速的都不支持https(已知阿里云cdn支持)

    检查443端口是否启动   使用下面命令 netstat -apnt | grep 443    (如果没有启动检查配置文件或者端口是否冲突)

    443端口如果已经启动,但不能访问,请检查防火墙(或者安全狗) ,允许443端口.

    linux iptables使用下面命令:

    iptables -A INPUT -p tcp -m tcp --dport https -j ACCEPT


    Apache自动跳转到 HTTPS

     

    网站根目录新建 .htaccess

    RewriteEngine On
    RewriteCond %{SERVER_PORT} 80
    RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R,L]

    301跳转

    <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /
    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule (.*) https://%{SERVER_NAME}/$1 [R=301,L]
    </IfModule>

    站点绑定多个域名,只允许www.gworg.com 跳转

    RewriteEngine On
    RewriteCond %{SERVER_PORT} 80
    RewriteCond %{HTTP_HOST} ^example.com [NC,OR]
    RewriteCond %{HTTP_HOST} ^www.example.com [NC]
    RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R,L]

    ###把网址更改为自己的###

    高级用法 (可选)

    RewriteEngine on
    # 强制HTTPS
    RewriteCond %{HTTPS} !=on [OR]
    RewriteCond %{SERVER_PORT} 80
    # 某些页面强制
    RewriteCond %{REQUEST_URI} ^something_secure [OR]
    RewriteCond %{REQUEST_URI} ^something_else_secure
    RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
    # 强制HTTP
    RewriteCond %{HTTPS} =on [OR]
    RewriteCond %{SERVER_PORT} 443
    # 某些页面强制
    RewriteCond %{REQUEST_URI} ^something_public [OR]
    RewriteCond %{REQUEST_URI} ^something_else_public
    RewriteRule .* http://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]



    OneinStack一键包快速自动配置Let's Encrypt免费SSL证书方法

    如果我们不想购买付费SSL证书的话,选择和使用Let's Encrypt免费SSL证书应该算是目前比较优先的选择,虽然每隔90天需要重新激活续约一次,但是如果设定好自动续约问题也不是很大,而且兼容支持的浏览器算是比较齐全的,老左也看到不少的优秀网站也有在使用。

    老左在前面一篇"LNMP V1.4一键快速部署Let's Encrypt免费SSL证书"文章中可以看到今年儿童节将会出来的正式版LNMP将会可以一键部署Let's Encrypt证书。同时,最近一年中用户较多的OneinStack一键包也是支持一键快速部署Let's Encrypt免费SSL证书的,老左将在这篇文章中记录我们如何用OneinStack一键包安装部署Let's Encrypt。

    第一、OneinStack安装Let's Encrypt证书准备工作

    1、我们当前服务器需要部署好OneinStack一键包,如果没有部署则需要参考这篇文章自动部署。

    2、我们需要在配置好的环境中,再单独安装Let's Encrypt客户端,要不我们无法自动获取Let's Encrypt安装选项。

    ./addons.sh

    OneinStack安装Let's Encrypt证书准备工作

    我们只有安装好客户端后才可以添加站点的时候出现Let's Encrypt选项。

    3、我们需要先将域名解析到当前服务器,这样安装证书配置时候会检测域名所有权。

    第二、OneinStack添加站点自动配置Let's Encrypt

    1、基本的站点部署参数设置

    OneinStack添加站点自动配置Let's Encrypt

    ./vhost.sh

    我们用正常添加站点的命令进行站点部署配置参数。

    2、配置SSL证书

    配置SSL证书

    因为我们开始的时候安装了客户端,所以在这里可以看到有Let's Encrypt选项,我们只要 解析过来域名,这里一般没有问题,邮箱我们可以随便填写一个自己的。后面还有几个网站参数,比如日志、伪静态规则等,我们正常配置即可。

    3、安装成功

    安装成功

    看到这样的界面,理论上是可以成功安装SSL。我们可以简单的丢一个页面到网站目录下,然后看看HTTPS是不是强制跳转过去。这个时候我们只要配置网站或者搬迁网站修改指向即可。

    第三、关于Let's Encrypt自动续约问题

    关于Let's Encrypt自动续约问题

    老左看到自动部署SSL之后,也自动添加续约脚本。前提是我们的服务器要安装好crontab,如果没有安装则需要自己先安装,要不部署不到。

    第四、OneinStack一键包配置Let's Encrypt小结

    1、我们在OneinStack环境中配置Let's Encrypt证书还是比较简单的,前提是我们要安装Let's Encrypt客户端后再添加站点才有选项。

    2、缺点就是我们站点要开始添加的时候才可以自动部署选择Let's Encrypt安装,如果是已有站点,则不可以自动单独配置。

  • 相关阅读:
    不爽
    HOLD ON
    Netnet
    Plan
    TFS 2010 中使用 签入注释 策略
    GO 语言编程 windows 环境搭建
    日期选择器
    DEDE CMS 验证码不显示的问题
    win8 无法打开任务管理器
    对页面元素中事件进行提取,保持 ,使用完成后再进行事件绑定
  • 原文地址:https://www.cnblogs.com/kenshinobiy/p/8808152.html
Copyright © 2011-2022 走看看