如何列出服务器支持的所有选项?能否列出其OpenSSL加密套件?
一、查看服务器支持的全部选项
不同类型服务器的查看方法略有区别,常见的几种如下:
Nginx
要获取最全面的编译配置选项,直接运行:nginx -V这个命令会输出编译Nginx时启用的所有模块、协议支持、路径设置等参数。如果想查看运行时的配置细节,可以直接打开Nginx的主配置文件(比如
/etc/nginx/nginx.conf),或者用nginx -t检查配置时顺带确认关键配置块的设置。Apache
同样用大写V参数查看编译参数:httpd -V # 部分系统用 apache2 -V运行时加载的模块可以用
apache2ctl -M查看,完整的配置选项则需要查阅httpd.conf或apache2.conf里的指令设置。OpenSSH服务器
要查看当前生效的所有SSH配置选项,包括默认值和自定义设置,运行:sshd -T也可以直接查看
/etc/ssh/sshd_config配置文件里的各项设置。
二、列出服务器支持的所有OpenSSL加密套件
完全可以做到,分场景说明:
1. HTTPS服务器(Nginx/Apache等)
实时检测服务器实际支持的套件
用openssl s_client命令连接目标服务器,过滤出加密套件信息:openssl s_client -connect your-domain.com:443 -tls1_2 2>/dev/null | grep -A 10 "Cipher Suite"把
tls1_2换成tls1_3、tls1_1或tls1,就能查看对应TLS版本下支持的套件。查看配置文件中指定的套件
Nginx里看ssl_ciphers指令,Apache里看SSLCipherSuite指令,这里列出的是服务器允许使用的套件范围,但实际生效的还要结合OpenSSL版本和编译支持。
2. OpenSSH服务器
查看SSH支持的加密套件,直接运行:
ssh -Q cipher
另外,ssh -Q cipher-auth可以看认证算法,ssh -Q mac能查看消息认证码。
3. 查看系统OpenSSL本身支持的所有套件
如果要确认服务器上OpenSSL版本原生支持的全部套件,用:
openssl ciphers -v
这个命令会列出所有套件的详细信息,包括对应的协议版本、密钥交换算法、加密算法等。
内容的提问来源于stack exchange,提问作者intrigued_66

