前段时间看了一点关于SSL的知识,给自己站也做了一个HTTPS的访问,当然这个是自行颁发不受浏览器信任的SSL证书,如果需要浏览器信任的证书需要向权威机构申请。整个设置大致流程如下:
生成秘钥
秘钥Key,也称私钥,openssl会提示输入一个密码,可以输入,也可以不输,输入的话,以后每次使用这个key的时候都要输入密码,安全起见,还是应该有一个密码保护。使用命令如: openssl genrsa (可选-des3) -out server.key 2048/1024/4096等
|
|
执行回车后输入密码再次回车输入确认密码即可,则在当前目录生成了server.key文件,具体可参见如下图:
生成CSR证书
使用上面生成的Key,生成一个certificate signing request (CSR)。如果生成的key有密码保护,openssl首先会询问刚才设置的密码,然后需要你填写一系列问题,其中Common Name(CN)是最重要的,它代表你的证书要代表的目标,如果你为网站申请的证书,就要添你站点的域名。
|
|
执行完成之后则在当前目录生成了server.csr文件,如下图所示
上图中需要填写的信息也可以作为配置信息,不用每次都进行填写,于是可以将这些信息设置为默认信息,如下:
找到 /etc/pki/tls/openssl.cnf 配置文件(修改默认设置)
查找[ req_distinguished_name ] 模块下面的
|
|
修改为
除了上面CN需要认真填写,其他默认值都可随意填写没有要求限制。
生成Self Signed证书
|
|
server.crt就是我们生成的证书了,执行过程中直接输入y回车即可。到目前为止,生成了server.crt文件,就已经得到了整个SSL的秘钥文件。
另外一个比较简单的方法就是用下面的命令,一次生成key和证书
|
|
配置nginx中ssl的模块
|
|
开启443端口设置防火墙
|
|
重启nginx服务
|
|
最后浏览访问https://hostname 即可。
另外申请权威机构的证书文件可以向http://www.startssl.com/ 注册申请,过程有点麻烦,但最后还是可以实现。
(The End)