openssl和ssh基本用法
通过OpenSSL工具生成证书
创建私钥
openssl genrsa -des3 -out server.key 2048
注意,centos版本如果是CentOS Linux release 8.0.1905 (Core)版本,私钥长度不能设置成1024位,必须2048位。不然再最后启动nginx时会出如下错误。
nginx: [emerg] SSL_CTX_use_certificate(“/etc/nginx/ssl/server.crt”) failed (SSL: error:140AB18F:SSL routines:SSL_CTX_use_certificate:ee key too small)
其他版本
openssl genrsa -des3 -out server.key 1024
创建csr证书
openssl req -new -key server.key -out server.csr
-
其中key文件为刚才生成的文件。
-
执行上述命令后,需要输入一系列的信息。输入的信息中最重要的为Common Name,这里输入的域名即为要使用https访问的域名 ,可以填:localhost。其它的内容随便填即可。
-
以上步骤完成后,ssl文件夹内出现两个文件:server.csr 和 server.key
去除密码
openssl rsa -in server.key -out server_nopwd.key
-
在加载SSL支持的Nginx并使用上述私钥时除去必须的口令,否则会在启动nginx的时候需要输入密码
-
然后输入密码,这个密码就是上文中在创建私钥的时候输入的密码
生成crt证书
openssl x509 -req -days 365 -in server.csr -signkey server_nopwd.key -out server.crt
- 注意是那不要密码的key去生成
- 365就是一年有效,填3650天10年也行
配置nginx
- ssl文件夹中一共生成了4个文件。
- 需要用到的是其中的server.crt和server_nopwd.key这两个文件。
# server块
server {
listen 443 ssl;
server_name _;
ssl_certificate ssl/server.crt;
# 注意是不要密码的key
ssl_certificate_key ssl/server_nopwd.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;
}
}
- 访问https://ip即可。
- 欢迎来访