Repository navigation
Home
Bing edited this page Sep 1, 2018
·
20 revisions
- 安装OpenSSL
- step.1 下载安装
Download OpenSSL,安装到
C:\openssl-win - step.32 配置环境变量
新增变量名
OPENSSL_HOME,变量值C:\openssl-win\bin;,打到Path变量,并在Path变量结尾添加一条: %OPENSSL_HOME%
- 生成证书
- step.0 进入目录
d:\test_ssl - step.1 创建私钥
openssl genrsa -des3 -out server.key 2048
输入密码后,再次重复输入确认密码。记住此密码,后面会用到。(注意:[-des3]指定后,该server.key文件将加密存放,当需要使用该密钥,则需要输入密码方可使用。如需要明文存放该密钥(可用计事本直接打开查看),省略该选项即可。)
- step.2 创建csr
openssl req -new -key server.key -sha256 -out server.csr
提示出错:Unable to load config info from /usr/local/ssl/openssl.cnf 则在安装目录下找到share\openssl.cnf文件,在cmd中,输入 `set OPENSSL_CONF=C:\openssl-win\share\openssl.cnf` ,重新再输入生成csr证书指令.
注意Common Name <eg.YOUR name> []:localhost,需要与配置的服务器名ServerName一至,否则启动apache或nginx时会报错,其它可随意或不填写
openssl req -text -noout -in server.csr查看csr文件
- step.3 去除密码
在加载SSL支持的Nginx并使用上述私钥时除去必须的口令,否则会在启动nginx的时候需要输入密码。
复制server.key并重命名为server.key.org。
在命令行中执行如下命令以去除口令:
openssl rsa -in server.key.org -out server.key
然后输入密码,这个密码就是上文中在创建私钥的时候输入的密码。
- step.4 生成root证书(默认是SHA-1加密的,这里用sha256,Chrome16年后已对SHA-1证书标记为“无效HTTPS”)
openssl x509 -req -days 365 -in server.csr -signkey server.key -sha256 -out server.crt
openssl x509 -text -noout -in ustack.crt 查看crt文件
- step.5 修改nginx conf
server {
listen 443 ssl;
server_name localhost;
ssl_certificate d://test_ssl//server.crt; # 这个是证书的crt文件所在目录
ssl_certificate_key d://test_ssl//server.key; # 这个是证书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; # 这个是指定首页的文件名
}
}
openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout ca.key -out ca.crt