Search Issue Tracker
By Design
By Design in 2023.3.X
Votes
0
Found in
2022.3.11f1
2023.1.16f1
2023.2.0b14
2023.3.0a10
Issue ID
UUM-53669
Regression
Yes
UnityWebRequest can't establish an HTTPS/TLS connection to a server with a “SHA256RSA“ certificate when using a URL with a domain name on iOS devices
How to reproduce:
1. Build And Run the user’s attached “UnityWebRequestTLS12_2022.zip” project on an iOS device
2. In the app, press the “Send UnityWebRequest to "https://funrobgames.com:7500/Ping"“ button
3. Observe the text under the button
Expected result: Text is “ok”
Actual result: Text is “unable to complete ssl connection”
Reproducible with: 2022.1.0a5, 2022.1.24f1, 2022.3.11f1, 2023.1.16f1, 2023.2.0b14, 2023.3.0a10
Not reproducible with: 2021.3.31f1, 2022.1.0a4
Reproduced on:
VLNQA00494 - iPhone 14 Pro Max, 16.3.1 iOS
VLNQA00358 - iPhone 12, 14.1 iOS
VLNQA00392 - iPad (9th generation), 15.0 iOS
VLNQA00310 - iPad Pro 12.9", 13.4.1 iOS
Notes:
- not reproducible in the Editor, Android, Standalone Build (Windows, macOS)
- not reproducible if the URL contains only IP-address, it works
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- Objects with Universal Render Pipeline/Particles/Lit shader are always lit up when changing their Rendering Layer Mask
- PolySpatial “Trying to set shader on a Material Variant.” error is printed in the console when entering Play Mode
- Error “Shader error in 'YSCloudCover': call to 'tex3D' is ambiguous at Assets/YSCloudCoverText.shader(606) (on d3d11)“ is present when compiling tex3D shader with DXC
- Placeholder asset is not loaded with Advertisement Legacy sample when using the latest version of the package
- Addressables content build fails but the Player build is successful when building a development build
Resolution Note:
On iOS you have to enable arbitrary load to be able to use self-signed certificates.
You need to add NSAllowsArbitraryLoads key to Info.plist. Enabling insecure HTTP in Player Settings in Unity will do this for you. Older Unity versions had an iOS specific setting for this, which was enabled by default, hence you see the difference between Unity versions.
More info:
https://developer.apple.com/documentation/bundleresources/information_property_list/nsapptransportsecurity/nsallowsarbitraryloads?language=objc
Resolution Note (2023.3.X):
On iOS you have to enable arbitrary load to be able to use self-signed certificates.
You need to add NSAllowsArbitraryLoads key to Info.plist. Enabling insecure HTTP in Player Settings in Unity will do this for you. Older Unity versions had an iOS specific setting for this, which was enabled by default, hence you see the difference between Unity versions.
More info:
https://developer.apple.com/documentation/bundleresources/information_property_list/nsapptransportsecurity/nsallowsarbitraryloads?language=objc