add ssl server
This commit is contained in:
parent
e8a85d0d93
commit
ea17b3ca98
@ -22,6 +22,13 @@
|
|||||||
]}
|
]}
|
||||||
]},
|
]},
|
||||||
|
|
||||||
|
{ssl_server, [
|
||||||
|
{port, 443},
|
||||||
|
{acceptors, 500},
|
||||||
|
{max_connections, 10240},
|
||||||
|
{backlog, 10240}
|
||||||
|
]},
|
||||||
|
|
||||||
%% 网络带宽, 单位为: kb
|
%% 网络带宽, 单位为: kb
|
||||||
{band_width, 2048},
|
{band_width, 2048},
|
||||||
|
|
||||||
|
|||||||
@ -22,6 +22,13 @@
|
|||||||
]}
|
]}
|
||||||
]},
|
]},
|
||||||
|
|
||||||
|
{ssl_server, [
|
||||||
|
{port, 443},
|
||||||
|
{acceptors, 500},
|
||||||
|
{max_connections, 10240},
|
||||||
|
{backlog, 10240}
|
||||||
|
]},
|
||||||
|
|
||||||
%% 网络带宽, 单位为: kb
|
%% 网络带宽, 单位为: kb
|
||||||
{band_width, 2048},
|
{band_width, 2048},
|
||||||
|
|
||||||
|
|||||||
23
priv/ssl/server.crt
Normal file
23
priv/ssl/server.crt
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDwzCCAqugAwIBAgIUMhNyuVo6MieWs2I9LsyTTiDKtYgwDQYJKoZIhvcNAQEL
|
||||||
|
BQAwgYkxCzAJBgNVBAYTAkNOMRAwDgYDVQQIDAdCZWlqaW5nMRAwDgYDVQQHDAdC
|
||||||
|
ZWlqaW5nMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxEjAQBgNV
|
||||||
|
BAMMCWFubGljaGVuZzEfMB0GCSqGSIb3DQEJARYQMjQ0MTA4NzE1QHFxLmNvbTAe
|
||||||
|
Fw0yNTA0MjEwMzUyNTlaFw0yNjA0MjEwMzUyNTlaMIGJMQswCQYDVQQGEwJDTjEQ
|
||||||
|
MA4GA1UECAwHQmVpamluZzEQMA4GA1UEBwwHQmVpamluZzEhMB8GA1UECgwYSW50
|
||||||
|
ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMRIwEAYDVQQDDAlhbmxpY2hlbmcxHzAdBgkq
|
||||||
|
hkiG9w0BCQEWEDI0NDEwODcxNUBxcS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IB
|
||||||
|
DwAwggEKAoIBAQDdxxyYG0zV2KzeiVH5AGj1X1h7vLAHVS8FGkPL2QBBqW5/PrJ/
|
||||||
|
z/sv3QJz6dB3ElOnk14GsY8lWk8uX/fjgNIPawN1G2/bCdMrlPOCEJEIOqZvzQWg
|
||||||
|
PLRPGjoZx+wjCM/H7h47KVr4GNbo8MakLJeg6QB3rEEIiPrhQIoq9N7AhcjbEvWR
|
||||||
|
NIxIQrpSqMCE2A5RoKUxAMum9rEoe/6PBw2GgEsQl5E6suRZw3wavg3aUU+6MMyx
|
||||||
|
iiKEA6fCD5gDqgSo/xjgDUWJIOTTrmW6RBTcWP9iBUjWnCovQQ9zc6CzDXRgfsz9
|
||||||
|
7uXQt9fuQEi++lcGnrsePjC99PnirCvmj/C/AgMBAAGjITAfMB0GA1UdDgQWBBT6
|
||||||
|
n4jUTWQNcastC5jPHuU7CDzLFjANBgkqhkiG9w0BAQsFAAOCAQEAZJ9fY2Z+4vKr
|
||||||
|
bBqwHmfBjEnGgS7L2mC7uS2x/x2meBRKlAlw5+nKdaUBccyI2baI3P1mh/iV72Wr
|
||||||
|
OTcwUwSS6gIOB7JeWSB0UT7KbEOJ1tM/1HYs5F9tOT94P4Adm2gcKY81UlJMfSNQ
|
||||||
|
WyWFLjWOk/5fUP42BmgbUIafTT9p+LeP6NOyEs6b4hGpF3q5L1QDwMUfASpOWtHn
|
||||||
|
O7VyBvFyCGkVchnorWJ3ZXPaa7hy+2ULOK/d9zH3xxq4LKRclAS5XAMWHuw6/+tu
|
||||||
|
CoxA+RPnaqHexPSzYlEElOT286FDyZHadjUDD0q/0Um92NUM3r+UrNEs/OHp7/nU
|
||||||
|
M3BVM7H6LQ==
|
||||||
|
-----END CERTIFICATE-----
|
||||||
18
priv/ssl/server.csr
Normal file
18
priv/ssl/server.csr
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
-----BEGIN CERTIFICATE REQUEST-----
|
||||||
|
MIICzzCCAbcCAQAwgYkxCzAJBgNVBAYTAkNOMRAwDgYDVQQIDAdCZWlqaW5nMRAw
|
||||||
|
DgYDVQQHDAdCZWlqaW5nMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBM
|
||||||
|
dGQxEjAQBgNVBAMMCWFubGljaGVuZzEfMB0GCSqGSIb3DQEJARYQMjQ0MTA4NzE1
|
||||||
|
QHFxLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN3HHJgbTNXY
|
||||||
|
rN6JUfkAaPVfWHu8sAdVLwUaQ8vZAEGpbn8+sn/P+y/dAnPp0HcSU6eTXgaxjyVa
|
||||||
|
Ty5f9+OA0g9rA3Ubb9sJ0yuU84IQkQg6pm/NBaA8tE8aOhnH7CMIz8fuHjspWvgY
|
||||||
|
1ujwxqQsl6DpAHesQQiI+uFAiir03sCFyNsS9ZE0jEhCulKowITYDlGgpTEAy6b2
|
||||||
|
sSh7/o8HDYaASxCXkTqy5FnDfBq+DdpRT7owzLGKIoQDp8IPmAOqBKj/GOANRYkg
|
||||||
|
5NOuZbpEFNxY/2IFSNacKi9BD3NzoLMNdGB+zP3u5dC31+5ASL76Vwaeux4+ML30
|
||||||
|
+eKsK+aP8L8CAwEAAaAAMA0GCSqGSIb3DQEBCwUAA4IBAQBHdTrwcS0Ip5XO/zJ/
|
||||||
|
wFZvxe8wcdMBaHjSRx09Lgy3V1L9d0DPOfuUP4LP8UCxniucA2JLugJO1wr/5nZA
|
||||||
|
FS9GcyCgbMKX/EskFkpuz72EA11WhyqFp/9nWZsxZB0t1cs3bUFeoFd2SE6QIo4N
|
||||||
|
UY+guZCcF8hVwppceOxyaUQ9cudAClH9JSMR1XoIwvv3X7FJkPhM12DvcsLr062S
|
||||||
|
fwG7/1h+VoSpAM/UYtBHBkU0MIVn1Gw6lJvkabUV0oYYBzl9ejsq1Qo2nUMdOEQY
|
||||||
|
SS/VhVLONMyMCIERt3/GJTXdrJ12VqawJACFwv8g2i6NxbQvbZpF7TpS8amduO8+
|
||||||
|
aRE6
|
||||||
|
-----END CERTIFICATE REQUEST-----
|
||||||
28
priv/ssl/server.key
Normal file
28
priv/ssl/server.key
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
-----BEGIN PRIVATE KEY-----
|
||||||
|
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDdxxyYG0zV2Kze
|
||||||
|
iVH5AGj1X1h7vLAHVS8FGkPL2QBBqW5/PrJ/z/sv3QJz6dB3ElOnk14GsY8lWk8u
|
||||||
|
X/fjgNIPawN1G2/bCdMrlPOCEJEIOqZvzQWgPLRPGjoZx+wjCM/H7h47KVr4GNbo
|
||||||
|
8MakLJeg6QB3rEEIiPrhQIoq9N7AhcjbEvWRNIxIQrpSqMCE2A5RoKUxAMum9rEo
|
||||||
|
e/6PBw2GgEsQl5E6suRZw3wavg3aUU+6MMyxiiKEA6fCD5gDqgSo/xjgDUWJIOTT
|
||||||
|
rmW6RBTcWP9iBUjWnCovQQ9zc6CzDXRgfsz97uXQt9fuQEi++lcGnrsePjC99Pni
|
||||||
|
rCvmj/C/AgMBAAECggEAM4j6RwpI/4RbH1cvmjoTKbmfORmumfWceIYS7QKfAaMa
|
||||||
|
jy0Fk5fD2ep0kHTrwU+b6tvexJVsGxTyQ2d/lfkwVu7aHdNjWbXdwUnakAXDffML
|
||||||
|
C/3LaeHRUHRavfTsFXQNvHrDwaGphu9WuUiCEFJgZb7fIfAAKLiT+9XghXzjaj79
|
||||||
|
nGANBB++kfBGacfj2NMedCxsbZ++pD7DbTG4utnHmzgwB3WEEm2kIbt0XpuDSZqe
|
||||||
|
/tCA1gCOADjV17C31booT6xdoj+s/Se0YxY91JaZFkI5wTSDIhB9scZzh8piy8YQ
|
||||||
|
QaEaRUUYNbzdI1MyvgewT6wQLONNlytOOc9hYnPgAQKBgQDyzaublY2q+yzqCQ68
|
||||||
|
JSKNTCSFRwumJ1kmdfz/0QwzS363l7LFnfIb55h27q3vuiagPfRbi0GK/tVXhOe+
|
||||||
|
8mntNMoJJQJzowpy4ANqKfGndojXejE1s1ExpuGyqWV4MyFGiwAnnzyWRENw4laS
|
||||||
|
roY0OcynNuq++isgrVMPlDLAvwKBgQDp1OTh2wcSfhsaVbMjNVCOGD82OFK057JB
|
||||||
|
3C62Li2lCybFwcooypCyZthUdskY2Gf/mDdnpLSLvXr/7bO3IyLopA3WpnYqMBt+
|
||||||
|
7sP/VQJMoyobLFMnJh+N+CxwkhRNAib64054WKwiJcccJ5fplUvNjOLBgGx3a/3N
|
||||||
|
OIxx+L7QAQKBgQC+EK3zPuEFJVYFZk24jkE75oz4H6NIz6iD6PzBrH0mckShpwh0
|
||||||
|
la1+lo7NGw3hiRDPg3ATcTE/gziyKAHZgZ3V5+r3uZbvuoNlZWKG6oqWkr2QH8EB
|
||||||
|
znsSqRYoa15Y931m4Uyft5EP+CPq6+LlM+UuYMiJZP3hvaehDszkdxg7tQKBgGjv
|
||||||
|
vMPLCpJ2+2zHFvxu+ba7FOsdPain7ix2RpRFhwBxT7Yh8Lp7pZIaa20EXd0DiTCA
|
||||||
|
PCUMGmY345IlN6ixYQIsVXWGALOQIVbGijj1CnIgK05EhxCjoDeTL0ZZmDizBZFE
|
||||||
|
HzwM9zrf30o4TolqEbmuRzj1jDfPw/esMAMZ0XABAoGBANpjvUN0Qvy9WmLyPe6U
|
||||||
|
DBzIAUyyIL3mnCuHLCQ+dE6nBf5l20sVjTdIl/eLlvmD7dwT/D9Zsg32/c2NBCdY
|
||||||
|
DltKKZl2u9nuSJ1g8DWTZUQHkYSTeKPOoAl/5mbCgyTxzmmmtZF6MySKuif0rzwS
|
||||||
|
X2Rwou9zTpwgsEEmQ/RH4G94
|
||||||
|
-----END PRIVATE KEY-----
|
||||||
@ -31,8 +31,8 @@ init() ->
|
|||||||
LOptions = #{
|
LOptions = #{
|
||||||
addr_family => inet,
|
addr_family => inet,
|
||||||
% 必选:QUIC/TLS证书配置
|
% 必选:QUIC/TLS证书配置
|
||||||
certfile => Path ++ "/" ++ CertFile,
|
certfile => Path ++ "/quic/" ++ CertFile,
|
||||||
keyfile => Path ++ "/" ++ KeyFile,
|
keyfile => Path ++ "/quic/" ++ KeyFile,
|
||||||
alpn => Alpn,
|
alpn => Alpn,
|
||||||
peer_bidi_stream_count => 1,
|
peer_bidi_stream_count => 1,
|
||||||
conn_acceptors => AcceptorCount
|
conn_acceptors => AcceptorCount
|
||||||
|
|||||||
40
src/ssl/sdlan_ssl_server.erl
Normal file
40
src/ssl/sdlan_ssl_server.erl
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
%%%-------------------------------------------------------------------
|
||||||
|
%%% @author anlicheng
|
||||||
|
%%% @copyright (C) 2026, <COMPANY>
|
||||||
|
%%% @doc
|
||||||
|
%%%
|
||||||
|
%%% @end
|
||||||
|
%%% Created : 03. 5月 2026 13:31
|
||||||
|
%%%-------------------------------------------------------------------
|
||||||
|
-module(sdlan_ssl_server).
|
||||||
|
-author("anlicheng").
|
||||||
|
|
||||||
|
%% API
|
||||||
|
-export([start/0]).
|
||||||
|
|
||||||
|
%% 启动ssl服务
|
||||||
|
start() ->
|
||||||
|
{ok, Props} = application:get_env(sdlan, ssl_server),
|
||||||
|
Acceptors = proplists:get_value(acceptors, Props, 50),
|
||||||
|
MaxConnections = proplists:get_value(max_connections, Props, 10240),
|
||||||
|
Backlog = proplists:get_value(backlog, Props, 1024),
|
||||||
|
Port = proplists:get_value(port, Props),
|
||||||
|
|
||||||
|
PrivDir = code:priv_dir(sdlan),
|
||||||
|
CertFile = filename:join([PrivDir, "ssl", "server.crt"]),
|
||||||
|
KeyFile = filename:join([PrivDir, "ssl", "server.key"]),
|
||||||
|
|
||||||
|
TransOpts = #{
|
||||||
|
max_connections => MaxConnections,
|
||||||
|
num_acceptors => Acceptors,
|
||||||
|
shutdown => brutal_kill,
|
||||||
|
socket_opts => [
|
||||||
|
{nodelay, true},
|
||||||
|
{backlog, Backlog},
|
||||||
|
{port, Port},
|
||||||
|
{certfile, CertFile},
|
||||||
|
{keyfile, KeyFile}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{ok, _} = ranch:start_listener(ssl_server, ranch_ssl, TransOpts, ssl_channel, []),
|
||||||
|
logger:debug("[iot_app] the ssl server start at: ~p", [Port]).
|
||||||
Loading…
x
Reference in New Issue
Block a user