资讯专栏INFORMATION COLUMN

服务器 ssl 配置

Ku_Andrew / 2898人阅读

摘要:接下去会让你选择需要添加进该证书的子域名不带的主域名是默认包含的,最后一个选择服务器类型,不知道会对格式有什么影响我的是。

emmmm...搁置了这么久,终于把自己的网站搭起来了,然后还挺想要浏览器上的的小绿条的,就开始有上https的打算了。

获取证书

证书有免费和付费的,广为流传的免费的就有Let"s Encrypt,国内也有很多推出了合作的免费证书,像又拍云和七牛也有免费的开放申请,大都是单域名的。

由于我需要同时支持多个二级域名,我就在cheapsslsecurity购买了 comodo 家多域名证书。

包含不带www的主域名和两个子域名,23刀,再另加一个子域名,总共32刀,能接受,下单了,可以使用 PayPal 支付,支付成功之后会让填写个人信息。

然后就可以下一步了,(忘了截图…只能徒手画了)。

大概长这样,填写域名,选择域名验证方式,我一般选择 CNAME 验证,去域名控制台设置一下解析就可以通过验证了。

下面是一块填写.scr文件内容的区域,这个文件需要到服务器生成:

$ openssl req -new -newkey rsa:2048 -sha256 -nodes -out example.com.csr -keyout example.com.key -subj "/C=CN/ST=ZheJiang/L=HangZhou/O=Example Inc./OU=Web Security/CN=example.com"

# C:Country,单位所在国家,为两位数的国家缩写,如:CN 就是中国
# ST:State/Province,单位所在州或省
# L:Locality,单位所在城市/或县区
# O:Organization,此网站的单位名称
# OU:Organization Unit,下属部门名称;也常常用于显示其他证书相关信息,如证书类型,证书产品名称或身份验证类型或验证内容等
# CN:Common Name,网站的域名

运行后会得到两个文件,example.com.csrexample.com.key,把example.com.csr的内容以完整的pem格式提交到网站上。

接下去会让你选择需要添加进该证书的子域名(不带www的主域名是默认包含的),最后一个选择服务器类型,不知道会对格式有什么影响(我的是 nginx server)。

以上完成会有一个新的页面,里面会包含需要设置的 CNAME 的信息,设置完之后就等着收到包含证书的邮件。

配置ssl证书

收到的邮件压缩包内包含了4个文件:

分别属于:

根证书 - AddTrustExternalCARoot.crt

中级证书 - COMODORSAAddTrustCA.crt

中级证书 - COMODORSADomainValidationSecureServerCA.crt

域名证书 - 93485680.crt

这里有个证书链的概念,可以查看这篇文章了解,我们要做的是把这几个证书串联起来:

$ cat 93485680.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt > ssl.bundle.crt

然后把这个证书链和先前生成的example.com.csrexample.com.key放到同一处管理,接下去就是配置 nginx 服务器了:

listen                443 ssl;
server_name         example.com www.example.com;

# ssl config
ssl                    on;
ssl_certificate        /etc/ssl/private/ssl.bundle.crt; # 证书链
ssl_certificate_key    /etc/ssl/private/example.com.key; # 私钥
# ssl_protocols 和 ssl_ciphers 可以用来限制连接只包含 SSL/TLS 的加強版本和算法
ssl_protocols        TLSv1 TLSv1.1 TLSv1.2; # 支持的协议,Windows XP 不支持
ssl_ciphers            HIGH:!aNULL:!MD5; # 算法

这个配置完成之后重启 nginx 就可以使用 https 形式访问网站了。

其他 强制https访问

如果网站需要强制https形式访问,可以加入HSTS(HTTP Strict Transport Security)策略:

# 启用 HSTS ,仅通过 https 访问
add_header Strict-Transport-Security max-age=31536000;
# add_header X-Frame-Options DENY;  # 如果不需要引用 iframe 则可以加上
add_header X-Content-Type-Options nosniff;

然后在另一个多带带的 server 配置中监听同域名的80端口并重定向至 https 链接:

server {
    listen       80;
    server_name  example.com www.example.com;
    location / {
        return 301 https://example.com$request_uri;    # 要重定向的地址
    }
}
完整配置
server {
    listen       443 ssl;
    server_name  example.com www.example.com;

      # ssl config
    ssl on;
    ssl_certificate      /etc/ssl/private/ssl.bundle.crt; # 证书链
    ssl_certificate_key  /etc/ssl/private/example.com.key; # 私钥
    
    # 为了更安全 ,可以考虑使用迪菲-赫尔曼密钥交换
    # openssl dhparam -out /etc/ssl/private/dhparam.pem 2048
    ssl_prefer_server_ciphers on;    # 启用 Forward Secrecy
    ssl_dhparam /etc/ssl/private/dhparam.pem;
    ssl_protocols TLSv1.2 TLSv1.1 TLSv1;    # 支持的协议,Windows XP 不支持
    ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4";
    keepalive_timeout 70;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    
    # 启用 HSTS ,仅通过 https 访问
    add_header Strict-Transport-Security max-age=31536000;
    # add_header X-Frame-Options DENY;  # 如果不需要引用 iframe 则可以加上
    add_header X-Content-Type-Options nosniff;

    location / {
        # root   /usr/share/nginx/html;
        # index  index.html index.htm;
        index index;
        # proxy_pass http://127.0.0.1:7001;
        proxy_pass http://127.0.0.1:7001/blog/index;
    }
}

emmmm...亲身实践了一次,总体来说还是挺简单的,但是其中某些配置项暂不甚了解,同志仍需努力。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/39735.html

相关文章

  • 常用的Nginx/Apache引擎务器配置HTTPS SSL证书示范

    摘要:昨天我们看到百度发布百度烽火算法升级,提到网站如果被劫持或者拦截可能会降低网站的权重和排名等问题。这次机遇百度文章发布之后,可以看到大家应该还在犹豫的话会新增证书实现访问。第一引擎安装证书在当前网站下服务器配置文件的文件中添加。 昨天我们看到百度发布百度烽火算法升级,提到网站如果被劫持或者拦截可能会降低网站的权重和排名等问题。这使得我们网站需要使用HTTPS SSL证书来减少被拦截劫持...

    call_me_R 评论0 收藏0
  • 常用的Nginx/Apache引擎务器配置HTTPS SSL证书示范

    摘要:昨天我们看到百度发布百度烽火算法升级,提到网站如果被劫持或者拦截可能会降低网站的权重和排名等问题。这次机遇百度文章发布之后,可以看到大家应该还在犹豫的话会新增证书实现访问。第一引擎安装证书在当前网站下服务器配置文件的文件中添加。 昨天我们看到百度发布百度烽火算法升级,提到网站如果被劫持或者拦截可能会降低网站的权重和排名等问题。这使得我们网站需要使用HTTPS SSL证书来减少被拦截劫持...

    crelaber 评论0 收藏0
  • 180602-nginx多域名配置

    摘要:多域名配置原来的域名过期了,重新买了一个,正好重新的配置一下,针对之前写过的几个不同的东西,通过不同的子域名来进行区分,因此简单记录一下的多域名配置域名配置背景因为资金有限,只有一台服务器,但是这个服务器上干的事情却不止一件,当前的状况是有 nginx多域名配置 原来的域名过期了,重新买了一个hhui.top,正好重新的配置一下,针对之前写过的几个不同的东西,通过不同的子域名来进行区分...

    maochunguang 评论0 收藏0
  • 【nginx运维基础(7)】配置SSL支持https访问

    摘要:证书主要有两个功能加密和身份证明,通常需要购买,也有免费的,本文使用阿里云的一年免费期的证书。申请免费证书阿里云控制台产品与服务安全云盾证书,点击购买证书,选择免费型补全申请签发证书,然后下载证书。 关于 SSL 证书 有关 SSL 的介绍可以参阅阮一峰老师的《SSL/TLS协议运行机制的概述》。 SSL 证书主要有两个功能:加密和身份证明,通常需要购买,也有免费的,本文使用阿里云的一...

    mingzhong 评论0 收藏0
  • 宝塔Linux面板nginx配置SSL证书的解决方案

    宝塔Linux面板nginx配置ssl证书的解决方案:1、nignx系统需要的证书文件为证书pem文件和key文件共两个,配置方法可以咨询SSL盾客服2、apache系统需要的证书文件为crt证书文件,crt证书链文件和密钥key文件共三个文件,配置方法可以咨询SSL盾客服3、IIS和tomcat系统需要的证书文件为pfx格式文件,需要通过工具在线把证书pem文件和密钥key文件转换为pfx文件,...

    番茄西红柿 评论0 收藏2637

发表评论

0条评论

Ku_Andrew

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<