搭建HTTPS服务器

一、SSL证书申请

    搭建一个HTTPS站点,第一步就是申请SSL证书,并且需要在标准的证书颁发机构去申请。从技术上来说,你也可以使用自签名证书,但自签名证书会被所有的浏览器视为不安全的证书,并且给用户报错。

#******************** 本文使用的是手动生成并粘贴csr文件的方式申请SSL证书 ********************#

#腾讯云官方文档:https://cloud.tencent.com/document/product/400/4143#2.

1、确认要申请证书的域名

2、生成私钥和csr(Certificate signing request)文件

    # 生成私钥,使用DES3算法,生成2048位的,名字为server.key的私钥文件,在nginx配置中指定私钥文件路径即可。提示设定的私钥密码一定要牢记。

    openssl genrsa -dess -out server.key 2048

    # 结合已经生成的私钥文件生成csr文件

    openssl req -key server.key -out server.csr

    # 在生成csr文件之后,你可以把带密码的私钥更改为不带密码的私钥(这一步是非必须的,并且一定要在生成csr文件之后,因为必须使用带密码的私钥才能生成csr文件)

    openssl rsa -in server.key -out server_no_passwd.key

    # 在生成csr文件的过程中,会提示你输入证书所要求的字段信息,包括国家(中国添CN)、省份、所在城市、单位名称、单位部门名称(可以不填直接回车)。请注意: 除国家缩写必须填CN外,其余都可以是英文或中文。请输入您要申请SSL证书的域名,如果您需要为www.domain.com申请SSL证书就不能只输入domain.com,SSL证书是严格绑定域名的。 请不要输入Email、口令(challenge password)和可选的公司名称(如果输入口令,每次启动服务器都会要求输入密码),直接打回车即可。 您现在已经成功生成了密钥对,私钥文件:www.abc.com.key 保存在您的服务器中, 请把CSR文件:www.abc.com.csr 发给证书服务公司(比如StartSSL)即可,各个含义如下:

    *********************************************************************************************************************

    Country Name (2 letter code): 使用国际标准组织(ISO)国码格式,填写2个字母的国家代号。中国请填写CN。

    State or Province Name (full name): 省份,比如填写Shanghai

    Locality Name (eg, city): 城市,比如填写Shanghai

    Organization Name (eg, company): 组织单位,比如填写公司名称的拼音

    Organizational Unit Name (eg, section): 比如填写IT Dept

    Common Name (eg, your websites domain name): 使用SSL 加密的网站地址。

    # 请注意这里并不是单指您的域名,而是直接使用 SSL 的网站名称 例如:pay.abc.com。 

    #一个网站这里定义是: abc.com 是一个网站; www.abc.com 是另外一个网站; pay.abc.com 又是另外一个网站。 

    Email Address: 邮件地址,可以不填

    A challenge password: 可以不填

    An optional company name: 可以不填

    *********************************************************************************************************************

3、证书的生成

    # csr文件必须经过CA的签名才能形成证书,将csr文件提交给第三方证书颁发机构申请对应域名的服务器证书,同时将私钥文件要保存好(server.key是放在服务器上配合SSL证书一起使用的),以免丢失,更不能泄露给第三方。

    # 复制server.csr中的内容,提交到证书颁发机构,即可下载生成的SSL证书。

    # 申请证书后,证书颁发机构提供的两张SSL证书,一个是你站点的证书,另一个是服务器的根证书,这里可以假设服务器证书文件为server.crt。

    # 将生成的私钥文件“server.key”和服务器证书“server.crt”拷贝到服务器指定的目录,接着就可以配置HTTPS服务器了。

二、配置HTTPS服务

1、基于Nginx的HTPPS服务配置

server {

    listen    443;   #指定ssl监听端口

    server_name  www.example.com;

    ssl on;    #开启ssl支持

    ssl_certificate    /etc/ssl/cert/server.pem;    #服务器证书路径

    ssl_certificate_key  /etc/ssl/private/server.key;   #私钥路径

    ssl_session_timeout  5m;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;     #指定SSL服务器端支持的协议版本

    ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;    #指定加密算法

    ssl_prefer_server_ciphers   on;    #在使用SSLv3和TLS协议时指定服务器的加密算法要优先于客户端的加密算法

    #以下内容请按域名需要进行配置,此处仅供参考

    location / {

        return 444;

    }

}

#目前证书有以下常用文件格式:JKS(.keystore),微软(.pfx),PEM(.key + .crt)。其中,tomcat使用JKS格式,nginx使用PEM格式。

# 然后测试并重启即可

2、基于Tomcat的HTTPS服务配置

    # 首先是申请证书,可以使用java自带的keytool自己生成证书

    keytool -genkey -alias tomcat -keyalg RSA -keystore /home/rainman/.keystore

    xxxxx/jdk1.6.0_04/bin/keytool -genkey -alias tomcat -keyalg RSA -keystore /home/rainman/.keystore

    # 如果要在生产环境上,对外提供https服务,就要花钱购买证书了。

    vim server.xml

    # 找到如下节点

   <!-- <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" />

   -->

    # 修改为如下配置

   <Connector port="8443" protocol="HTTP/1.1"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS"
               keystoreFile="/home/rainman/.keystore"  
               keystorePass="123456"/>(123456是我之前输入的keystore密码)

   keystoreFile=keystore文件地址;keystorePass="123456",123456是我之前输入的keystore密码;

    # 重启一下即可。

三、另一种方式

    # 由证书颁发机构同时生成.crt文件和私钥

   http://blog.51cto.com/forall/1884295

参考链接:   

    http://blog.csdn.net/weixin_35884835/article/details/52588157

    https://www.jianshu.com/p/57066821b863

    https://www.cnblogs.com/grimm/p/6912894.html


    


  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值