阿里云免费申请https证书
阿里云可以提供一年的免费ssl证书,下面看看如何申请
管理控制台——产品与服务——SSL证书(应用安全)——购买证书(在右上角),刚进来是需要付费的——Symantec(在点击增强型 OV SSL就会跳出免费)
点击免费购买就可以了,这时候获得是还没有绑定域名的还无法使用,还需要返回来填写需要绑定的域名信息,验证域名然后等待2小时左右就可以下载SSL证书了。
还可以点击域名或者云解析DNS,直接在域名下申请证书。
如果没有云解析DNS,进入域名后点击需要增加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 导入配置文件既可以。