WEB服务1:免费https申请 https配置tomcat和nginx

阿里云免费申请https证书

阿里云可以提供一年的免费ssl证书,下面看看如何申请
管理控制台——产品与服务——SSL证书(应用安全)——购买证书(在右上角),刚进来是需要付费的——Symantec(在点击增强型 OV SSL就会跳出免费)
点击免费购买就可以了,这时候获得是还没有绑定域名的还无法使用,还需要返回来填写需要绑定的域名信息,验证域名然后等待2小时左右就可以下载SSL证书了。


ssl证书

ssl证书2

ssl证书

ssl证书

还可以点击域名或者云解析DNS,直接在域名下申请证书。


域名解析

域名申请

如果没有云解析DNS,进入域名后点击需要增加ssl的域名
ssl

ssl域名申请

Tomcat配置https(pfx)

Tomcat的配置有两种方式pfx和jks(本实验使用pfx方式)Tomcat7以后才支持pfx的格式,否则需要使用jks,在阿里云下载对应证书(根据安装需要下载对应的版本),这里下载tomcat版本

下载对应证书

下载解压后文件:


下载的证书

在tomcat文件夹下新建cert,将cert-1541390494946_test.zhicj.cn.pfx 放置进去

在server.xml配置文件中加入配置:

<Connector port="8443" #根据需要修改端口,如果使用443端口,公网ip需要备案
  protocol="org.apache.coyote.http11.Http11Protocol" #这里需要注意tomcat6和tomcat7的区别
  SSLEnabled="true"
  scheme="https"
  secure="true"
keystoreFile="/opt/tomcat-7.0.79/cert/cert-1541390494946_test.zhicj.cn.pfx"
#这里就是申请pfx文件
  keystoreType="PKCS12"
  keystorePass="EkXEhMoH" #这里的密码是解压后passwd中文件
  clientAuth="false"
  SSLProtocol="TLSv1+TLSv1.1+TLSv1.2" ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>

配置好防火墙后,重启tomcat即可测试访问。
https://绑定的域名:端口
特别注意如果使用IP访问或者其他解析的域名访问https都是显示不安全的。
如果protocol="HTTP/1.1"配置是这个,在tomcat7中报错:


报错

原因:
Tomcat提供了两个SSL实现,一个是JSSE实现,另一个是APR实现。这里使用apr方式因此需要修改为protocol="org.apache.coyote.http11.Http11Protocol"

JKS证书安装(帮助)

( 1 ) 使用java jdk将PFX格式证书转换为JKS格式证书(windows环境注意在%JAVA_HOME%/jdk/bin目录下执行)
keytool -importkeystore -srckeystore 1534713259529.pfx -destkeystore your-name.jks -srcstoretype PKCS12 -deststoretype JKS
回车后输入JKS证书密码和PFX证书密码,强烈推荐将JKS密码与PFX证书密码相同,否则可能会导致Tomcat启动失败。
( 2 ) 找到安装 Tomcat 目录下该文件Server.xml,一般默认路径都是在 conf 文件夹中。找到

Connection port="8443"标签,增加如下属性:
keystoreFile="cert/your-name.jks"
keystorePass="证书密码"

完整的配置如下,其中port属性根据实际情况修改:

<Connector port="8443"
    protocol="HTTP/1.1"  #此处特别注意tomcat6?7使用是否APR
    SSLEnabled="true"
    scheme="https"
    secure="true"
    keystoreFile="cert/your-name.jks"
    keystorePass="证书密码"
    clientAuth="false"
    SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"
    ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>

( 注意:不要直接拷贝所有配置,只需添加 keystoreFile,keystorePass等参数即可,其它参数请根据自己的实际情况修改 )
重启 Tomcat。
通过 https 方式访问您的站点,测试站点证书的安装配置

Nginx配置https

阿里云下载nginx的证书,在nginx目录下新建crt文件夹,将解压后两个文件拷贝到里面。特别注意,如果nginx使用其他启动账户需要有访问此文档权限


证书位置

编辑配置

server {
        listen       8443 ssl;
        server_name  localhost; #此处可以修改为申请的证书域名
        ssl_certificate      /home/app/tengine/crt/cert-1541390494946_test.zhicj.cn.crt;
        ssl_certificate_key  /home/app/tengine/crt/cert-1541390494946_test.zhicj.cn.key;
    #此处就是放置ssh证书文件和key文件地方
        ssl_session_cache    shared:SSL:1m; #这些值在实验默认即可,        
    ssl_session_timeout  5m;
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location / {
            root   html;
            index  index.html index.htm;
        }
    }

在实际使用情况根据使用情况修改,SSL证书配置最主机的地方在上面证书放置到正确位置,至于cache、timeout等等根据业务需要调整。Location等配置根据实际情况和server其他配置相同。配置完成以后,
重启nginx或者使用-s reload 导入配置文件既可以。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容