@@ -838,24 +838,23 @@ async fn test_unix_socket() {
838838 rx. try_recv ( ) . unwrap ( ) . unwrap ( ) ;
839839}
840840
841- fn make_root_cert ( ) -> rcgen:: CertifiedKey {
842- let mut param = rcgen:: CertificateParams :: default ( ) ;
841+ fn make_root_issuer ( ) -> rcgen:: Issuer < ' static , rcgen :: KeyPair > {
842+ let mut params = rcgen:: CertificateParams :: default ( ) ;
843843
844- param . distinguished_name = rcgen:: DistinguishedName :: new ( ) ;
845- param . distinguished_name . push (
844+ params . distinguished_name = rcgen:: DistinguishedName :: new ( ) ;
845+ params . distinguished_name . push (
846846 rcgen:: DnType :: CommonName ,
847847 rcgen:: DnValue :: Utf8String ( "<HTTP-MITM-PROXY CA>" . to_string ( ) ) ,
848848 ) ;
849- param . key_usages = vec ! [
849+ params . key_usages = vec ! [
850850 rcgen:: KeyUsagePurpose :: KeyCertSign ,
851851 rcgen:: KeyUsagePurpose :: CrlSign ,
852852 ] ;
853- param . is_ca = rcgen:: IsCa :: Ca ( rcgen:: BasicConstraints :: Unconstrained ) ;
853+ params . is_ca = rcgen:: IsCa :: Ca ( rcgen:: BasicConstraints :: Unconstrained ) ;
854854
855- let key_pair = rcgen:: KeyPair :: generate ( ) . unwrap ( ) ;
856- let cert = param. self_signed ( & key_pair) . unwrap ( ) ;
855+ let signing_key = rcgen:: KeyPair :: generate ( ) . unwrap ( ) ;
857856
858- rcgen:: CertifiedKey { cert , key_pair }
857+ rcgen:: Issuer :: new ( params , signing_key )
859858}
860859
861860async fn bind_proxy < S > ( service : S , http2 : bool ) -> ( u16 , impl Future < Output = ( ) > )
@@ -872,8 +871,8 @@ where
872871 . await
873872 . unwrap ( ) ;
874873
875- let cert = make_root_cert ( ) ;
876- let proxy = Arc :: new ( http_mitm_proxy:: MitmProxy :: new ( Some ( cert ) , None ) ) ;
874+ let issuer = make_root_issuer ( ) ;
875+ let proxy = Arc :: new ( http_mitm_proxy:: MitmProxy :: new ( Some ( issuer ) , None ) ) ;
877876
878877 let serve = async move {
879878 let ( stream, _) = tcp_listener. accept ( ) . await . unwrap ( ) ;
@@ -1111,18 +1110,17 @@ fn setup_mtls_server(
11111110 // Workaround for mac & native-tls
11121111 // https://github.com/sfackler/rust-native-tls/issues/225
11131112 let key_pair = rcgen:: KeyPair :: generate_for ( & rcgen:: PKCS_RSA_SHA256 ) . unwrap ( ) ;
1114- let cert = rcgen:: CertificateParams :: new ( vec ! [ "localhost" . to_string( ) ] )
1115- . unwrap ( )
1116- . self_signed ( & key_pair)
1117- . unwrap ( ) ;
1118- rcgen:: CertifiedKey { cert, key_pair }
1113+ let params = rcgen:: CertificateParams :: new ( vec ! [ "localhost" . to_string( ) ] ) . unwrap ( ) ;
1114+
1115+ let cert = params. self_signed ( & key_pair) . unwrap ( ) ;
1116+ ( cert, key_pair)
11191117 } ;
11201118
11211119 let server_cert = make_cert ( ) ;
11221120 let client_cert = make_cert ( ) ;
11231121
11241122 let mut roots = rustls:: RootCertStore :: empty ( ) ;
1125- roots. add ( client_cert. cert . der ( ) . clone ( ) ) . unwrap ( ) ;
1123+ roots. add ( client_cert. 0 . der ( ) . clone ( ) ) . unwrap ( ) ;
11261124 let _ = rustls:: crypto:: CryptoProvider :: install_default (
11271125 rustls:: crypto:: aws_lc_rs:: default_provider ( ) ,
11281126 ) ;
@@ -1133,9 +1131,9 @@ fn setup_mtls_server(
11331131 let config = rustls:: ServerConfig :: builder ( )
11341132 . with_client_cert_verifier ( verifier)
11351133 . with_single_cert (
1136- vec ! [ server_cert. cert . der( ) . clone( ) ] ,
1134+ vec ! [ server_cert. 0 . der( ) . clone( ) ] ,
11371135 rustls:: pki_types:: PrivateKeyDer :: Pkcs8 ( rustls:: pki_types:: PrivatePkcs8KeyDer :: from (
1138- server_cert. key_pair . serialize_der ( ) ,
1136+ server_cert. 1 . serialize_der ( ) ,
11391137 ) ) ,
11401138 )
11411139 . unwrap ( ) ;
@@ -1144,17 +1142,17 @@ fn setup_mtls_server(
11441142
11451143 File :: create ( dir. join ( "server.crt" ) )
11461144 . unwrap ( )
1147- . write_all ( server_cert. cert . pem ( ) . as_bytes ( ) )
1145+ . write_all ( server_cert. 0 . pem ( ) . as_bytes ( ) )
11481146 . unwrap ( ) ;
11491147
11501148 File :: create ( dir. join ( "client.crt" ) )
11511149 . unwrap ( )
1152- . write_all ( client_cert. cert . pem ( ) . as_bytes ( ) )
1150+ . write_all ( client_cert. 0 . pem ( ) . as_bytes ( ) )
11531151 . unwrap ( ) ;
11541152
11551153 File :: create ( dir. join ( "client.key" ) )
11561154 . unwrap ( )
1157- . write_all ( client_cert. key_pair . serialize_pem ( ) . as_bytes ( ) )
1155+ . write_all ( client_cert. 1 . serialize_pem ( ) . as_bytes ( ) )
11581156 . unwrap ( ) ;
11591157
11601158 (
0 commit comments