注册地址:https://www.startssl.com/?app=12
注:注册过程中不要关闭浏览器.
第一步:填写注册信息,注意地址需要详细.如果地址信息不全,会人工发邮件给你,让你发详细地址给他们.
第二步:在第一步提交之后会发激活码到注册邮箱,到邮箱里取激活码激活.
第三步:通过激活码激活后,会再发登陆地址和激活码.通过邮箱中的链接进行登陆证书的安装.
三步走完之后即可添加证书,一般我们用在网站上,就需先添加域名(添加域名会验证域名所有者,会发验证码到域名注册邮箱),如下图:
验证域名通过后,即可创建证书,点击Certificates Wizard进入创建证书,选择Web server
接着设置证书密码,密码是用来解私钥的,最小10位最大32位,只能用英文字母和数字,生成证书后会提示保存密钥,将公私密钥保存下来后即可使用在网站上.
注:上面生成的KEY是带有密码的,用在服务器上时,每次启动Nginx或Apache时都会提示让你输入KEY密码,可通过下面两种方法将密码去除:
1.使用openssl去除密码:
# openssl rsa -in ssl.key -out ssl.key
2.使用StartSSL的工具去除:
点击Tool Box在边边找到Decrypt private key,按提示把KEY粘贴进去输入密码即可得到没有带密码的KEY.
使用OpenSSL生成SSL证书
1.首先确认安装有OpenSSL,并且能够执行.
2.创建一个RSA私钥(三倍-DES加密,PEM格式)
# openssl genrsa -des3 -out server.key 1024
去除密钥密码:
# openssl rsa -in server.key -out server_nopass.key
或直接创建不带密码的密钥:
openssl genrsa -out server.key 1024
3.通过RSA私钥文件来创建一个未签署的证书请求文件(PEM格式,CSR)
# openssl req -new -key server.key -out server.csr
通过以上步骤,你已经有了一个证书请求文件(CSR),你可以将此文件发送给一个认证机构来进行认证,当然会等一段时间并且花上一些钱.或者通过自己的CA认证机构来进行认证.
CA签署server证书
1.为你的CA创建一个RSA私钥(三DES加密并且是PEM格式)
# openssl genrsa -des3 -out ca.key 1024
或创建非加密的PEM格式的私钥
# openssl rsa -in ca.key -out ca_nopass.key
2.创建一个自签名的证书文件(X.509 结构,输出为PEM格式)
# openssl req -new -x509 -days 365 -key ca.key -out ca.crt
3.通过CA签署证书
# openssl x509 -req -days 30 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt
Tips:如果未创建CA中心证书,可通过下面命令签署服务器证书:
# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
在生产环境中应将CSR证书发送到一个CA认证返回真正的证书,或付费申请证书,自己生成的证书一个是不受浏览器信任,一个是安全性问题.
Nginx SSL配置
# vi /path/conf/nginx.conf
添加
server {
......
listen 443;
ssl on;
ssl_certificate /path/nginx/ssl/server.crt;
ssl_certificate_key /path/nginx/ssl/server_nopass.key;
......
}
Apache SSL配置
# vi /path/conf/httpd.conf
添加
......
listen 443
......
# vi /path/conf/extra/httpd-vhost.conf
<VirtualHost _default_:443>
......
SSLEngine On
SSLCertificateFile conf/ssl/server.crt
SSLCertificateKeyFile conf/ssl/server.key
#SSLCertificateChainFile conf/ssl/ca.crt // 暂未启用
......
</VirtualHost>
Tomcat SSL配置
在tomcat的server.xml中添加一个新的connector添加以下内容:
<Connector port="8443" maxHttpHeaderSize="8192"
SSLEnabled="true"
maxThreads="150"
minSpareThreads="25"
maxSpareThreads="75"
enableLookups="false"
disableUploadTimeout="true"
acceptCount="100"
scheme="https"
secure="true"
clientAuth="false"
sslProtocol="TLS"
keystoreFile="/conf/server.jks"
keystorePass="XXXXXX"
algorithm="SunX509"
/>
注:keystoreFile对应server端的jks文件,keystorePass对应其密码.